C头文件依赖

标签 c include header-files

<分区>

我通常总是在我的头文件中包含依赖项,这样当将该头文件添加到源文件时,我不需要四处寻找其他所需的头文件来编译它。

然而,在审查了一些其他编码标准之后,这似乎经常被禁止,要求头文件不包含任何#include 语句。

我真的找不到任何关于此的讨论 - 那么禁止这种做法的原因是什么,还是纯粹取决于偏好?

--

例如 typedef.h 包含 U8 的 typedef。 my_header.h 声明 void display_message(U8 arg);

对 typedef.h 的引用应该进入 my_source_file.c 还是进入 my_header.h??

最佳答案

我认为没有充分的理由不允许 header 包含其先决条件。

考虑删除 #include从源文件。例如,假设代码已修改为不再使用 foo.h , 所以 #include因为那个被删除了。但是源文件有十几个#include声明。还有哪些你应该删除,因为它们不再需要了?希望,foo.h记录其先决条件,以便您可以识别要删除的候选对象。但是,如果您删除他们的 #include语句,您可能正在删除不同头文件所需的先决条件。因此,您必须检查每个 头文件的先决条件。

相反,如果 header 包含它们的先决条件,那么您可以简单地删除 #include <foo.h>并完成它。

关于C头文件依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18109053/

相关文章:

c++ - 为什么我的 C/C++ header 解析器不工作?

PHP require() 或 include() 并调用类变量?

visual-studio-2008 - 编译器不遵循 Visual Studio C++ 中的符号链接(symbolic link)

c - 如何使用 win32 API 在系统托盘图标中显示文本?

Core Graphics 函数/C 为什么被调用的函数填充发送的数组?

objective-c - #import 不能防止循环调用?

javascript - 包含来自 google 站点的 javascript 文件会减慢我的加载时间吗?

c++ - 即使在正确的目录中也找不到头文件?

c - 在 c 中为浮点变量生成整数输出

c++ - 代码块 - 混合 c 和 c++ 文件