c - C源文件包含自己的头文件有什么好处

标签 c header-files declaration

我知道如果一个源文件需要引用其他文件的函数那么它需要包含它的头文件,但我不明白为什么源文件包含它自己的头文件。头文件中的内容只是在每个处理时间内作为函数声明复制并粘贴到源文件中。对于包含自己的头文件的源文件,这样的“声明”对我来说似乎没有必要,事实上,从源文件中删除头文件后项目仍然编译和链接没有问题,那么源文件包含它的原因是什么自己的标题?

最佳答案

主要好处是让编译器验证 header 及其实现的一致性。你这样做是因为它方便,而不是因为它是必需的。如果没有这样的包含,肯定可以让项目正确编译和运行,但从长远来看,这会使项目的维护复杂化。

如果您的文件不包含自己的 header ,您可能会意外遇到函数的前向声明与函数定义不匹配的情况 - 可能是因为您添加或删除了参数,而忘记更新 header .发生这种情况时,依赖于不匹配函数的代码仍会编译,但调用会导致未定义的行为。最好让编译器捕获此错误,当您的源文件包含其自己的 header 时,它会自动发生。

关于c - C源文件包含自己的头文件有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30817570/

相关文章:

c++ - C/C++ - 将 24 位有符号整数转换为 float

c# - 从 C# 程序的 DLL 访问方法

c - 维度大于 3 的数组地址

javascript - Flow 是否存在不完整(部分)声明之类的情况?

c - 在C中声明的,未初始化的变量会怎样?有值(value)吗?

java - 有人可以解释这些 java 泛型方法的声明吗?

c - 使用 c/c++ 双击文件夹时打开我的应用程序

c++ - 为什么在头文件中声明并在文件中定义会出现多重定义错误?

c - -1)预处理程序,链接器,2)Header文件,库之间有什么区别?我的理解正确吗?

c++ - 一个/C++项目的基本结构(头文件和cpp文件)