为什么在C++中函数要先声明然后再定义呢?

除了因为怕出错外,还有没有比如这样可以使程序更快捷的原因呢?

你也可以不声明,直接定义。但:
1、函数的作用域只是从定义的地方开始的。也就是说,在函数定义行之上,你是无法使用该函数的。而把函数的定义都放在主函数之前的话,程序会变得不清楚。所以在使用前只需用一行声明一下就可以了,明了。
2、也许函数并不都是在一个文件里使用,这时候,如果再定义一遍,不仅显得罗嗦,而且使程序的维护变得麻烦,如果修改这个函数的话,需要修改每个定义。
所以可以把函数声明放在一个头文件中,使用的时候,包含这个头文件就可以了。
3、有时候,自己写的函数需要给别人用,比如商业用途。这样的话,不能将整个函数的实现都给对方,这就需要生成一个库文件,而将函数声明放在头文件中来给对方使用。
4、有时候需要用函数声明来重新声明函数,即使前面已经声明过。这样做可以设置新的默认参数,也可以是为了屏蔽作用域外同名的函数声明。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-02-23
这是最好的习惯,为什么?因为这样就是让编译器知道你下面有什么函数“出场”,如果你不先声明,一般不会产生错误,但有可能在一个函数调用另一个时,由于先后出现顺序不同引起出错,其实“编写上”并没错。

还有就是在大型联合编程时,一般都将子函数群放在main程序后面方便阅读。这样前边要加上这些函数的声明。

声明不声明执行速度上没变化
第2个回答  2008-02-21
这是编译器的要求。

函数定义有两种方法。一种是写在主函数 main() 前面,声明和定义一起写。另一种是在主函数前面写“原型”,在主函数之后 或 在分开的 .cpp 文件里写定义。

小程序一般用前者。大程序一般用后者。库函数也用后者(库函数的原型声明放在头文件里)。
第3个回答  2008-02-21
看不懂这个问题啊
第4个回答  推荐于2016-11-18
1、函数的作用域只是从定义的地方开始的。也就是说,在函数定义行之上,是无法使用该函数的。而把函数的定义都放在主函数之前的话,程序会变得不清楚。所以在使用前只需用一行声明一下就可以了。
2、也许函数并不都是在一个文件里使用,这时候,如果再定义一遍,不仅显得罗嗦,而且使程序的维护变得麻烦,如果修改这个函数的话,需要修改每个定义。
所以可以把函数声明放在一个头文件中,使用的时候,包含这个头文件就可以了。
3、有时候,自己写的函数需要给别人用,比如商业用途。这样的话,不能将整个函数的实现都给对方,这就需要生成一个库文件,而将函数声明放在头文件中来给对方使用。
4、有时候需要用函数声明来重新声明函数,即使前面已经声明过。这样做可以设置新的默认参数,也可以是为了屏蔽作用域外同名的函数声明。
相似回答