为什么要包含标准头文件?

why include standard header files?

提问人:Embedded_User 提问时间:2/17/2014 最后编辑:SekiEmbedded_User 更新时间:2/20/2014 访问量:239

问:

在 C 中包含标准头文件的原因是什么,例如等等。 gcc 编译器只是显示一个警告并隐式声明它,就像stdio.hstdlib.h

函数“printf”的隐式声明

并且程序成功执行...
除了删除警告之外,还有什么理由包含头文件吗?

c 头文件 gcc-warning

评论

0赞 AndersK 2/17/2014
FILE 来命名一个有用并在 stdio.h 中声明的结构
0赞 Brandin 2/18/2014
您已经回答了您的问题,包含标头的目的是阻止编译器生成警告。阻止编译器生成警告是一件好事。编译器向您显示警告这一事实也是一件好事。顺便说一句,如果它更容易,你可以把共同的包含放在一起,如果你愿意,只是说或类似的东西,以减少打字。#include "stanard_headers.h"

答:

4赞 unwind 2/17/2014 #1

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

原因是使用标头,您可以获得正确的声明,否则您将获得隐式声明,其中假定每个函数都返回 。由于有许多函数(例如 malloc())不返回,假设它们返回可能会非常有害。intint

通过函数声明,编译器实际上可以检查参数和返回值是否与用法匹配,这非常好。

此外,当然,在某些情况下,标头声明了您需要的数据类型、枚举等,标头中的函数不止于此。

评论

1赞 phuclv 2/17/2014
它不仅是返回值,而且所有参数类型也是隐式的 int,这使得比 int 长的类型(例如 long long int)存在问题
0赞 phuclv 2/17/2014
此外,在 64 位操作系统上,指针是 64 位的,因此隐式 int 可能会导致严重问题