【发布时间】:2012-03-24 19:01:22
【问题描述】:
可能重复:
C++ Header order
我的问题是关于 .h 文件中的包含。是否最好首先包含所有标准头文件,如 iostream,然后才包含所有用户头文件,反之亦然?我用谷歌搜索了一段时间,但没有找到任何建议。
【问题讨论】:
-
在我的实践中,我首先包含系统标头,然后包含用户标头。
标签: c++ header-files
可能重复:
C++ Header order
我的问题是关于 .h 文件中的包含。是否最好首先包含所有标准头文件,如 iostream,然后才包含所有用户头文件,反之亦然?我用谷歌搜索了一段时间,但没有找到任何建议。
【问题讨论】:
标签: c++ header-files
个人选择,我按以下顺序使用:
<standard headers>
<platform headers>
<project headers>
【讨论】:
我个人的偏好是自下而上。因此,特定于平台的头文件首先出现,然后是 C++ 标准头文件,然后是核心库(如 boost),然后是更高级别的库(如数据库),然后是特定于项目的包含。
【讨论】:
*.cc 文件应该首先是#include 系统头文件,然后是用户头文件(否则系统库和您自己的代码之间的名称冲突会产生奇怪的行为;但您应该避免这种冲突)。但是你可以把所有的#include放在你的头文件中。
您可以决定拥有一个包含所有#include 的用户标头,用于您的应用程序所需的系统标头;这有助于在 Linux 上使用 GCC 编译时预编译头文件。见this answer。
【讨论】:
【讨论】:
include的顺序无关紧要,你可以从任何你想要的开始,也可以结束。
不知道我答对了没有,我是这么理解的……
【讨论】: