对于更大的应用程序,我可以只使用一个 header 吗?

标签 c c-preprocessor header-files

我是一个新手,并且访问了一个相当复杂的源代码,该源代码是由一个 90 年代的团队创建的,他们都经验丰富并且经常一起工作。源代码由大约 60 个不同的 .c 文件组成,其中包括更多的头文件,其中大多数仅由几行代码组成。一个包含的文件在 header 中定义了 main 函数,而其他文件则由诸如 #define#include 等指令组成#if (#endif)、#else#undef#pragma 等。以及一些结构(struct)。您还可以找到一个 enum (与 #define 或多或少相同)、const 和一些变量,例如 charintshortlongfloatdouble 等。

除非 .c 文件确实需要它们,否则不会使用它们。由于大多数 .c 文件都包含许多此类头文件,因此很难跟踪它们。我的想法是将所有头文件放在一起到一个头文件中,我将其称为 Unihead.h。如果我想要进行任何更改,我必须检查最多 15 个不同的头文件才能找到问题。我看不到那么多头文件的好处。据我所知,每个源文件都有一个 header 是正常的(例如 Soccer.c 会有一个名为 Soccer.h 的 header )。如果我得到一个头文件,我可以进行简单的搜索并更有效地找到我要查找的内容,在我看来,使过程更加顺利。这样做有什么缺点吗? (无论如何我也会添加评论来跟踪)

最佳答案

不要认为这是个好主意。

您还可以将所有 60 个 .c 文件合并到一个文件中。但是,这种源文件和头文件结构有很多原因。您应该尝试了解项目结构。

关于对于更大的应用程序,我可以只使用一个 header 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963795/

相关文章:

总结二维数组的函数的缓存行为

c - 在不关闭工作的情况下重新读取正在/proc 中更新的文件吗?

c - 如何在代码 .h 文件中组织声明和函数并包含以实现最佳代码重用

hash - 字符串的编译时(预处理器)散列

c - 拒绝指针的数组大小的宏

objective-c - 具有多个目标的 Objective C 到 Swift 头文件

c - 我正在寻找在 emacs 中为全局变量添加语法颜色,在像 eclipse 这样的 func 中定义局部变量

c - 检查间隔范围内值的宏

c++ - 我可以将 "using namespace std"放入我的 namespace 中吗?

c++ - 在不同文件中编写类时聚合不起作用