2012-03-07 113 views
0

可能重复:
C++ Header orderC++头文件包括组织

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

+2

在我的实践我第一次有系统的头之后,我包括用户头部。 – v01d 2012-03-07 08:52:41

+1

阅读也是这个线程:http://stackoverflow.com/questions/614302/c-header-order – 2012-03-07 08:57:57

回答

7

它是一种个人的选择,我用它在以下顺序:

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

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

+0

嗯,重点是,我也读过赫伯特Schildt书中的相同的信息,但我的老板昨天说我是一种“糟糕的编码风格”......无论如何感谢您的关注。 – besworland 2012-03-07 09:04:19

0

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

您可能会决定让一个用户头包含您的应用程序所需的系统头文件的所有#include;这有助于在Linux上编译GCC时预编译头文件。请参阅this answer

0

已经有一个关于这个话题:

C++ Header order

但总的来说,你必须确保有在头的顺序并不重要。

0

包括的顺序无所谓,你可以从任何你想要开始,也可以结束。

我不知道如果我正确地回答,这就是我理解的......