扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
函数的入口在main(),程序从上至下执行的,如果你的函数在main()之后定义并且没有声明,执行的时候编译器会找不到定义而编译不过。声明就是要让编译器知道函数原型 (检测错误)
创新互联于2013年开始,公司自成立以来始终致力于为企业提供官网建设、移动互联网业务开发(微信小程序、手机网站建设、成都App定制开发等),并且包含互联网基础服务(域名、主机服务、企业邮箱、网络营销等)应用服务;以先进完善的建站体系及不断开拓创新的精神理念,帮助企业客户实现互联网业务,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞誉。
总之,如果main()函数在前,必须在main()中写函数声明;如果函数在main()前面,可以不在main()中写函数声明
在C语言中,编译一个C语言源文件是从第一行开始扫描到最后的,你调用一个函数,之前必须定义或申明过这个函数。
这样是合法的:
void f(){
}
int main(){
f();
}
这样也是合法的
void f();
int main(){
f();
}
void f(){
}
这样就是非法的
int main(){
f();
}
void f(){
}
所以函数调用不一定需要先声明,当函数定义调用函数之后需才要先申明。
这个程序可以这样分析,其实很简单,首先你要添加上去#include
这个头文件,其次你就这样记忆:要是main()函数在被调用函数的前面,也就是像你所说的这样情况的话,就必须在main()函数前面对被调用函数进行声明才可以正常调用函数,不然编译会出错的,
如果被调用函数出现在在了main()函数的上面,也就是mian()函数和你现在max函数位置调换一下,那么就不必对被调用函数进行声明了,直接调用就可以了。
这样的记忆比较清晰一点,我平时编程是将主函数写在最后,前面写被调用函数,这样就避免了忘记写函数声明而编译出错,希望我的解答能够帮助到你,
不是,如果你把自定义函数写在主函数前面的话,就是说写在开始的话,就可不用声明了。
否则声明是必需的。
第一,如果你没有看错就是你的书错了,只有int和char类型的函数不必声明
第二,C中可以不声明函数的条件是3个
1就是上面我说的
2.是被调函数定义在主调函数之前,可不必声明
3函数的外部已声明过了,个个主调函数中不必声明
对于第二点,很好解释,因为声明的目的在于告诉编译器有这么个自定义函数,返回类型是什么,如果被调函数定义在主调函数之前,那么编译器自然就知道了这个函数
你把f2和f1换下位置并去掉声明就明白了
再说一句,写函数声明是编写程序的良好习惯
请注意这是C程序,C官方声明标准编译器是Turboc 2。0
不要把C++的概念强加给C
我不是说VC++6不好,而是说既然是在学C,就要用标准的C编译器,只有标准C编译器才能正确的学习C的基础理论
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流