2014-02-17 124 views
2

什么是包括标准的头文件在C如stdio.hstdlib.h等。 gcc编译器只是显示一个警告,并含蓄地宣布它像为什么包含标准头文件?

功能上的“printf”

的隐式声明的原因

和程序成功执行...
而不是删除警告,是否有任何理由包含头文件?

+0

*'FILE' *命名一个结构是有用的,在stdio.h –

+0

宣布你已经回答了你的问题,其中包括报头的点是从生成的警告停止编译器。停止编译器生成警告是一件好事。编译器向您显示警告的事实也是一件好事。顺便说一句,如果它更容易,你可以把常用的包括在一起,只是说'#include“stanard_headers.h”'或类似的东西,以减少打字,如果你想。 – Brandin

回答

4

嗯,是的,当然是有原因的。

的原因是,与标题,你会得到正确的声明,否则你得到的声明,其中假定每一个函数返回int。由于许多功能(例如malloc())不返回int,假设它们确实会造成很大的危害。

随着函数声明编译器实际上可以检查参数和返回值的使用,这是非常好的匹配。

此外,还有当然情况下,头文件中声明的数据类型,枚举等等,你需要,还有比在头功能的更多。

+1

它不仅返回值,但所有参数的类型也是隐式int类型,这使得问题的类型不是INT不再如长长整型 –

+0

此外,在64位操作系统,指针是64位,所以隐式int类型可能会导致严重的问题 –

相关问题