
函数的形参字母在声明的时候是可以省略的,话句话说声明函数形参时,只需要说明类型就行
而你加上也不会错。最好加上呵呵,因为良好的命名规则会让你一看到函数原型就知道里面的参数是干嘛的。
有2中情况:
1,要么是先使用,就不需要再定义函数了
例如:
void
p()
{
//
}
void
main()
{
p();
}
2,先定义再使用,这时候,必须先要定义函数,不然编译器不识别此函数的
void
p();
void
mian()
{
p();
}
void
p()
{
//
}
//
希望可以帮到你
最好先加上原型声明,然后再定义,或者是使用该函数。
原型声明并不是可有可无的,很多时候它关系到代码的生成,函数定义会根据原型声明进行参数类型检查,决定参数压栈方式,使用函数的地方会根据原型声明来确定如何提取栈中的参数。
如果你省略原型声明,编译器就会根据一些规则,自己来猜,猜错了你就倒霉了。尤其是在传统C与标准C混用的时候,会让你得到错误的结论,而你怎么检查源程序都查不出原因来。
你是新手,以上这些话你可能不完全明白,按照C语言的标准,你最好是把原型声明写上,它并不是个可有可无的东西。先写原型声明,再写函数定义或调用,这是一个好习惯。
LS给的链接有些地方没说清楚。
C/C++中的函数原型是指函数声明的形式:
返回值类型 函数名(参数列表);。注意分号是函数原型的组成部分,去掉分号的部分可以称为函数头,是函数定义的起始部分。
这里的参数列表和定义中的列表语法形式相同,其中的参数是形式参数,只需要指定类型,名称可有可无。形式是以下任意一种:
1空——C中表示接受任意参数,C++中表示接受0个参数;
2“void”——C中接受0个参数,C++中可省略;
3“类型名 参数名,”,或者以上形式的重复,但末尾不能有逗号;参数名会被编译器无视,不必和定义一致;
4“”——用于C++,表示接受任意参数。
函数原型作为声明,作用是提示编译器,作为标识符的函数名,在声明之后或外部编译单元/库文件存在定义,以抑制编译器遇到这个标识符时产生标识符未定义的编译错误。原型作为语法技术的提出,出发点就在于这个作用,利用它可以方便地定义互相递归的函数,以及引用外部库文件的符号。
====
[原创回答团]
两者有些差异:
原型(Prototype)通常用在库函数的说明中,是给开发人员看的;
声明(Declaration)也是对函数的说明,出现在头文件中或程序文件中,是给编译器“看的”;
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)