为什么标准库的#include< ...>在.c文件中而不是头文件

时间:2017-01-21 21:49:40

标签: c include c-preprocessor

通过我们的课程材料,我注意到当我们#include <stdio.h>标准库(例如#include)时,这些.c出现在#include文件中,而不是头文件。头文件中显示的#include "anotherheader.h"是本地头文件#include的那些。

为什么?对我来说更有意义的是,所有.c声明都会出现在头文件中,并且所有rake db:seed 文件都会从那里派生出来。

2 个答案:

答案 0 :(得分:2)

源文件是直接包含标准头还是通过其他包含文件包含本地编码约定。

遵循这些惯例被认为是好的风格:

  • 仅包含 必需的标题;
  • 包括标准标题 之前的任何其他包含文件和本地声明;
  • 将每个源文件编译为单独的实体,包括项目头文件。这意味着您应该在这些文件的顶部包含本地头文件中使用的类型所需的标准头文件。
  • 使用标头保护程序保护标头文件中的定义:#ifndef SOME_SYMBOL / #endif

答案 1 :(得分:1)

最好只包含头文件中真正需要的内容,以避免circular dependencies并缩短构建时间。