大师包含文件 - 好的或坏的练习

Zam*_*lad 9 c c++

我已经看到了很多项目(通常是游戏引擎),其中所有标题包括放在单个头文件中,有时也包含宏等等.

// Master.h

#include "header1.h"
#include "header2.h"
#include "header3.h"
.
.
#include "headerN.h"
Run Code Online (Sandbox Code Playgroud)

然后在使用代码时,标准将只包含Master.h文件.

其他项目的工作原理是源文件应仅包含所需的标头.

我想知道的是,对于最佳实践是否存在确定的答案,最好是具有可衡量的结果,还是个人偏好?

Ben*_*igt 7

大多数答案都提到了编译时,并且忽略了这样一个事实,即标头的预编译具有巨大的编译时间优势,并且使用主标头技术可以更好地工作.

优选地,如果没有主头文件直接包含您的标题应该工作(这使测试更容易).现代编译器优化了"跳过头文件,如果包含多个"逻辑.