C++头文件包括组织

C++ header file includes organization

本文关键字:文件包 C++      更新时间:2023-10-16

可能重复:
C++标题订单

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

这是我个人的选择,我按以下顺序使用它:

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

我个人喜欢自下而上。因此,特定于平台的头文件将首先出现,C++标准头文件将紧随其后,然后是核心库(如boost),然后是更高级别的库(如数据库),最后是特定于项目的include。

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

您可以决定使用包含应用程序所需的所有#include系统标头的单个用户标头;当在Linux上使用GCC进行编译时,这有助于预编译头。看看这个答案。

已经有一个关于这个的主题:

C++标题订单

但一般来说,你必须确保标题的顺序不重要。

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

我不知道我的回答是否正确,这就是我所理解的。。。