新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不必,编译器编译时,是逐行编译的。但是它是先找到主函数,主函数编译完也表明这个程序已经编译完了。如果主函数放在其他函数之前,那么在主函数中要调用的子函数(自定义函数)要先在主函数之前声明它的存在。如:void fun(int n,int m);
创新互联公司是一家以网络技术公司,为中小企业提供网站维护、网站建设、网站制作、网站备案、服务器租用、域名注册、软件开发、小程序制作等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎咨询:18980820575
在多数编程语言里,变量、函数(过程)、结构体、类、对象等都是必须先声明(或在使用它之前定义)后使用。未声明或未在使用它的函数之前定义的,编译都无法通过。而且会报错:未定义的变量或函数等!
先回答下第一个问题,子函数的实现方法可以放在使用它的主函数或者其它子函数后面,但是你的定义一定要在使用它之前;不然编译器怎么知道你用的函数square是什么,这就是我们经常包含头文件的一个目的,头文件是一些函数定义或者预编译命令。
修改是在#includestdio.h后面加
int square(int num);
第二个问题:num是在main定义是可以在main作用域内直接使用,或者当做参数传递给子函数,你的问题num为什么可以在子函数中用,首先你子函数的num并非main里的num只是你把他们名字写成一样了;main里num是通过值传递给子函数的num,实际他们两个num的内存地址是不一样的,你子函数换个名字去理解一下。
在调用的函数前定义函数,此时可以不需要声明。
2.在调用的函数前声明。
3.在调用的函数里面也可以声明。
4.在其他文件的头文件*.h文件里面声明,然后*.c文件直接调用头文件也可以。
把子函数放主函数MAIN函数外并且是之前定义,无需声明。
2.如果你把子函数放到MAIN函数外,则必须在定义的时候先声明。
3.如果把 子函数放在MAIN函数中就不需要提前声明了。
4.声明一般告诉编译器有这个对象。可这个'有'字就有2层意思,第一层意思是这个对象在其他地方已经定义过,比如用extern来声明就有这个意思,因为这个对象已经有了这个时候不会对它分配内存。第二层含义就是这个对象以前没有是我现在定义的(现在有了以前没有)这个时候声明又可以称为定义他们是重叠的,这个时候给这个对象分配内存。所以可以看出在有定义的地方一定有声明,有声明的地方不一定就有定义。定义也是声明,这是很多人都不了解的地方
书写位置没有硬性的规定吧,只是如果你的子函数的实现写在主函数的后面,那么你需要在使用之前声明一下。'\t'是合法的字符常量,它也有对应的ASCII码值的