c - 如果我不包含头文件会发生什么

标签 c header

如果我在运行 c 程序时不包含头文件,会发生什么情况?我知道我收到警告,但程序运行完美。

我知道头文件包含函数声明。因此,当我不包括它们时,编译器如何计算出来?它会检查所有的头文件吗?

最佳答案

I know that I get warnings, but the programs runs perfectly.

这是前 ANSI C 的一个不幸遗留问题:该语言不需要函数原型(prototype),因此标准 C 直到今天都允许它(通常,可以产生警告以查找没有原型(prototype)调用的函数)。

当你调用一个没有原型(prototype)的函数时,C 编译器会对被调用的函数做出假设:

  • 函数的返回类型假定为int
  • 假定声明了所有参数(即没有 ... 可变参数)
  • 所有参数都假定为您在默认促销后传递的任何参数,依此类推。

如果在没有原型(prototype)的情况下被调用的函数符合这些假设,您的程序将正确运行;否则,它是未定义的行为。

关于c - 如果我不包含头文件会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25561262/

相关文章:

wcf - 以编程方式将自定义 WCF header 添加到终结点以实现可靠 session

c - 为什么当我放入值时,我的二维数组在索引处显示正确的值,而不是我稍后尝试访问它们的值? (C)

C语言: I want to add all the positive integers when a negative number is inserted

C:更改字符串中的字符

css - 标题样式 CSS

ios - 分组的 UITableView 粘性页眉/页 footer 分

php - 从 php header 下载的 Mp3 文件不起作用

c - 图数据结构在C中的实现

c - 如何使用自己的自定义函数(不是 vprintf 等)处理可变参数(通过省略号传递)?

vector - MediaWiki:Vector Collapsible Sidebar,一级标题问题