本帖最后由 baizy77 于 2018-10-1 20:50 编辑
版权声明 --------------------------------------------------------------------------------------------------------------------- 作者: 女儿叫老白 (白振勇) 转载请注明出处! --------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------
引言 ----------------------------------------------------------------------------- 在C语言中,函数调用前无需进行声明,在C++中语法变得严格了,调用函数前必须进行声明,这是为什么呢?
正文 ----------------------------------------------------------------------------- 在C++中,是否所有函数在使用前都必须被声明?(P173,第2段) 每个独立的c文件(.cpp 或,c)是一个翻译单元。编译器在每个翻译单元独立运行,这时它只能看到这个单元。 因此头文件所提供的信息是非常重要的,它决定了编译器对程序的其他部分的理解。 在头文件中的声明或在cpp的某个部分的声明是非常重要了,这样编译器可以明确知道需要做什么。 比如,在头文件中声明:void function(double),编译器知道,如果传入一个整数, 那么需要把它转化为都double再调用该接口(这被叫做提升promotion)。 如果没有这样声明,编译器简单的假设有一个function(int)存在,它不会做提升, 错误数据就会被悄悄传递给function()。因为传输的数据在内存中是按照int格式保存的而非double格式。 --------------------------------------------------------------------------- 参考资料:《C++编程思想》两卷合订本中文版P125第一段),(美) Bruce Eckel Chuck Allison著
|