十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在C语言中,编译一个C语言源文件是从第一行开始扫描到最后的,你调用一个函数,之前必须定义或申明过这个函数。
创新互联建站是专业的桐乡网站建设公司,桐乡接单;提供成都网站设计、成都网站建设、外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行桐乡网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
这样是合法的:
void f(){
}
int main(){
f();
}
这样也是合法的
void f();
int main(){
f();
}
void f(){
}
这样就是非法的
int main(){
f();
}
void f(){
}
所以函数调用不一定需要先声明,当函数定义调用函数之后需才要先申明。
如果函数定义在要调用该函数的函数的前面,就可以不用声明了,比如定义在main()前面的函数,在main()函数里面就可以不用声明,直接调用就可以,但是如果在后面的话,就要声明了
是这样的,编译器在编译的时候,是从头开始的,你写在了前面,编译器就知道了你有这么一个函数,到后面执行到主函数里,等要调用函数的时候电脑就知道了,因为它之前已认识过你写的函数了
如果先写主函数,那么它先编译主函数,在执行到调用你的函数的时候,因为它还没找到你的函数,所以它不认识,所以大多数情况下,如果主函数写在前面,我们都会在主函数里声明一句,告诉编译器让它到后面去找,但有的编译器即使你不写也不会报错。
#include stdio.h
int sum(int x,int y)
{ int z;
z=x+y;
printf("%d",z);
return z;
}
int main()
{ int a,b,s;
printf("Input a and b:");
scanf("%d,%d",a,b);
s=sum(a,b);
}
这样的就是被调用函数在主函数之前就被定义了。
如果你要把被调函数放在主函数后面,那么就要像下面那样,先定义。
#include stdio.h
int sum(int x,int y);
int main()
{ int a,b,s;
printf("Input a and b:");
scanf("%d,%d",a,b);
s=sum(a,b);
}
int sum(int x,int y)
{ int z;
z=x+y;
printf("%d",z);
return z;
}
随便找了一段,没编译,可能有错,你就讲究看下吧。
函数定义可以在调用之后,但是在调用前要加函数声明
#include iostream
using namespace std;
int main()
{
int b=2;
int test(int a); //函数声明(如果函数定义在调用后且没有声明,程序编译不了)
couttest(b); //函数调用
}
int test(int a) //函数定义
{
return a+2;
}