c - 在每个模块中包含标题的好习惯

标签 c

假设我有 3 个 C 语言的 exe 源文件。在这三个文件中以及包含 main() 函数的源文件中包含像 stdio 这样的 header 是一个好习惯吗?

如果否,那么正常做法是什么。

我读过一篇文章,其中说 header 应包含结构的所有定义,#defines 等。但我不确定是否包括其他标准 header 。

如有任何建议,我们将不胜感激!

最佳答案

仅包含您需要的标题。没有其他人。


包含不必要的附加 header 可能会产生不必要的较大 exe/lib。你不需要那个。

此外,这可能会误导某些人 - 不要包含您不需要的代码。

这可能会导致名称冲突,例如 - 如果您包含具有相同名称的 header 、包含函数。你也不需要这个。

C 没有命名空间,因此您不需要包含名称,您也不会使用。您可能想将它们用于其他用途。

如果您需要多个模块中的 header - 包含它。否则:

  • 如果没有间接包含它,则会出现编译器错误。
  • 如果它是间接包含的,这可能会给开发人员带来一些麻烦,他们将维护/支持您的代码

关于c - 在每个模块中包含标题的好习惯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12797818/

相关文章:

c++ - 在 C 中使用 printf 等效于 C++ std::setprecision(20)

c++ - 为什么taskset对fedora没有影响?

NEON 内在函数常量超出范围

c - C 中的指针转换和 "free"

C 在没有被要求的情况下填充数组

c - 无法理解在 inet_ntoa 函数中完成的类型转换

冲突的返回类型

c - 在c程序中添加0作为最后一个值

c - Switch 语句中的 float 据类型

我可以安全地假设所有(或大部分) "cc"在 *nix 系统上支持 "-Wall"吗?