【问题标题】:C++ header file includes organization [duplicate]C ++头文件包括组织[重复]
【发布时间】:2012-03-24 19:01:22
【问题描述】:

可能重复:
C++ Header order

我的问题是关于 .h 文件中的包含。是否最好首先包含所有标准头文件,如 iostream,然后才包含所有用户头文件,反之亦然?我用谷歌搜索了一段时间,但没有找到任何建议。

【问题讨论】:

标签: c++ header-files


【解决方案1】:

个人选择,我按以下顺序使用:

<standard headers>
<platform headers>
<project headers>

【讨论】:

    【解决方案2】:

    我个人的偏好是自下而上。因此,特定于平台的头文件首先出现,然后是 C++ 标准头文件,然后是核心库(如 boost),然后是更高级别的库(如数据库),然后是特定于项目的包含。

    【讨论】:

    • 嗯,关键是我也读过 Herbert Schildt 书中的相同信息,但我的老板昨天说这是一种“糟糕的编码风格”......无论如何,谢谢你的关注.
    【解决方案3】:

    *.cc 文件应该首先是#include 系统头文件,然后是用户头文件(否则系统库和您自己的代码之间的名称冲突会产生奇怪的行为;但您应该避免这种冲突)。但是你可以把所有的#include放在你的头文件中。

    您可以决定拥有一个包含所有#include 的用户标头,用于您的应用程序所需的系统标头;这有助于在 Linux 上使用 GCC 编译时预编译头文件。见this answer

    【讨论】:

      【解决方案4】:

      已经有关于这个的话题了:

      C++ Header order

      但通常你必须确保标题的顺序不重要。

      【讨论】:

        【解决方案5】:

        include的顺序无关紧要,你可以从任何你想要的开始,也可以结束。

        不知道我答对了没有,我是这么理解的……

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-01-16
          • 2012-08-11
          • 2020-07-05
          • 2012-02-12
          • 1970-01-01
          • 1970-01-01
          • 2020-03-11
          相关资源
          最近更新 更多