十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
原型声明——告诉编译器有这么一个原型(编译器在扫描到它时会作一个记录)。
成都创新互联公司主要从事网站制作、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务南丰,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
在引用到这么一个原型时,编译器会检查记录中有无此原型,如果无此原型,编译器就不知道这是个什么玩意儿,并报错——error:undefined:"***",也就是未定义的意思。
注意,你声明的原型也是有作用域的——在一个函数中声明的原型(我把它叫局部的原型声明),不可以在另一个函数中使用,只能在本函数内使用。
最好先加上原型声明,然后再定义,或者是使用该函数。
原型声明并不是可有可无的,很多时候它关系到代码的生成,函数定义会根据原型声明进行参数类型检查,决定参数压栈方式,使用函数的地方会根据原型声明来确定如何提取栈中的参数。
如果你省略原型声明,编译器就会根据一些规则,自己来猜,猜错了你就倒霉了。尤其是在传统C与标准C混用的时候,会让你得到错误的结论,而你怎么检查源程序都查不出原因来。
你是新手,以上这些话你可能不完全明白,按照C语言的标准,你最好是把原型声明写上,它并不是个可有可无的东西。先写原型声明,再写函数定义或调用,这是一个好习惯。
函数原型申明就是在main函数前面需要申明一下,否则main函数调用这个函数时会找不到,原型申明可以不定义具体的函数体,然后可以把函数体的具体部分放在main函数后面再来单独定义,这样程序整体上更整洁,要不然自定义函数都在main函数的前面就定义了,那代码一多还得找主函数。
函数定义就是规定函数的格式与功能。
函数声明就是在函数调用之前进行的一种说明。
下面举例说明两者的语法格式:
#includestdio.h
int fun(int a, int b); // 函数的声明
void main()
{
int x=1, y=2;
int c;
c = fun(x+y);
}
// 下面的fun函数就是函数的定义
int fun(int a, int b)
{
return a+b;
}
注:如果被调函数(上例中为fun函数)写在调用处之前,可以不声明(本例是现在调用处 (c = fun(x+y);)之后)。
void show_n_char(char,int) 如果是在c++是合法的,char, int 是友元,表示只有参数类型无参数变量名,但在c 语言中这样写不规范, 要写成:void show_n_char(char ch,int a)
此处为形参, 实际使用中要用实际参数传入。 如 调用该函数时,传入实参
show_n_char('d', 4);
char,int赋值给谁??? 这样看你的函数定义中是怎样使用这参数的。
在该函数中 ch='d' , int =4 ,
void show_n_char(char ch,int a)
{
char ch2=ch;
int b =a
printf ("");
}
则 ch2='d' , b=4
不知可看懂?