gpt4 book ai didi

c++ - 多次包含头文件导致编译时间变长?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:58 25 4
gpt4 key购买 nike

多次包含相同的头文件是否会增加编译时间?

例如,假设我项目中的每个文件都使用 <iostream> <string> <vector><algorithm> .如果我在源代码中包含很多文件,那么会增加编译时间吗?

我一直认为保护 header 起到了避免双重定义的重要作用,但作为副产品也消除了双重代码。

实际上,我认识的某个人提出了一些想法来去除这种多重夹杂物。但是,我认为它们完全违背了 C++ 中的良好设计实践。但仍然想知道他建议更改的原因可能是什么?

最佳答案

这些答案中的大多数都是错误的...对于现代编译器,多次包含同一文件的开销为,假设 header 使用通常的“include guard”习惯用法。

例如,GCC 预处理器有特殊代码为 recognize the include guard idiom .它甚至不会为第二个和后续的 #include 指令打开头文件(更不用说阅读它了)。

我不确定其他编译器,但如果大多数编译器没有实现相同的优化,我会感到非常惊讶。

关于c++ - 多次包含头文件导致编译时间变长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com