首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每个类中包含相同的标头

在每个类中包含相同的标头
EN

Stack Overflow用户
提问于 2012-04-15 12:06:42
回答 2查看 113关注 0票数 1

我在项目的所有代码文件中都包含了几个STL头文件,比如list和vector。我知道对于我自己的头,我应该使用包含防护,但是对于这个场景,当它们不是由我定义的时候呢?

在我的每个文件中都包含相同的头文件是不是很糟糕?每次包含它都会有性能损失吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-15 12:09:21

没有性能成本。标准的头文件有自己的include guards,所有的include guards都是由预处理器优化的,所以文件不会每次都被重新加载。

正确性和可维护性始终是…首先关注的问题当你重新排列文件并得到“未定义的标识符”错误时,你必须节省多少编译时间来弥补修复工作所花费的时间,或者更糟!

编辑:从所有的头文件中包含相同的标准头文件,不会增加性能成本。从源文件中包含额外的标准标头会产生一些性能成本。这个问题有点模棱两可,…但是,无论哪种方式,C++编译真正昂贵的部分通常是模板实例化,而不是解析文本。

票数 1
EN

Stack Overflow用户

发布于 2012-04-15 12:08:59

作为一般规则,

只有在源文件需要头文件时,才能包含它。

包含保护将防止相同的头文件被多次包含在同一个翻译单元中,并防止链接错误。当然,标准库的头文件也有自己的头文件。

但是,请注意,如果您将头文件包含在不需要它们的源文件中,那么它可能会增加您的编译并导致名称空间名称的污染。

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

https://stackoverflow.com/questions/10159404

复制
相关文章

相似问题

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