首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Master Include Files -好或坏的做法

Master Include Files -好或坏的做法
EN

Stack Overflow用户
提问于 2013-03-28 00:41:28
回答 6查看 3.2K关注 0票数 9

我见过相当多的项目(通常是游戏引擎),所有的头文件都放在一个单独的头文件中,有时也包含宏等。

代码语言:javascript
复制
// Master.h

#include "header1.h"
#include "header2.h"
#include "header3.h"
.
.
#include "headerN.h"

那么在使用代码时,标准就是只包含Master.h文件。

其他项目的工作基础是源文件应该只包含它们需要的头文件。

我想知道的是,对于最佳实践,是否有一个明确的答案,最好是有可衡量的结果,或者是个人偏好?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-03-28 00:51:09

大多数答案都提到了编译时间,而忽略了这样一个事实,即预编译头文件具有巨大的编译时间优势,并且使用主头文件技术效果要好得多。

最好是,如果直接包含在没有主头文件的情况下,您的头文件应该可以工作(这使得测试更容易)。现代编译器已经优化了“如果包含多个文件则跳过头文件”的逻辑。

票数 7
EN

Stack Overflow用户

发布于 2013-03-28 00:47:50

从编译时间的角度来看,这绝对是一种糟糕的做法,因为每次修改文件或接触任何包含的头文件时,都必须从头开始重新编译项目。

根据经验,您应该在源文件中包含尽可能少的头文件。然而,我可以看到一些情况下,这可能会派上用场,因为第三方库不会经常更改

票数 2
EN

Stack Overflow用户

发布于 2013-03-28 00:47:58

由于编译C++的成本很高,而且特别慢,我想说,如果有很多头文件(或者有很多实现文件,而这些文件又包含了头文件),那么通过避免不必要地包含未使用的头文件,可以避免一些额外的预处理和解析时间。

这是针对库的实现的(您提到游戏引擎使我认为我们在这里谈论的是库)。现在,为了方便起见,您可以创建一个“主”包含文件,包括那些使用库并希望所有内容都放在一个地方的用户(而不是同时拥有数千个文件)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15664393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档