gpt4 book ai didi

c++ - C++ 编译器是否优化掉未使用的#includes?

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:10 25 4
gpt4 key购买 nike

在构建不断增长的类/函数库时,我经常看到一种“伞形”头文件,它#includes 项目的所有公共(public)头文件。例如:

dsp.h
#include "file1.h"
#include "file2.h"
...
#include "filex.h"

有时我可能需要一切,但有时可能只需要一些功能/选项。例如,如果 #include dsp.h,但不使用 file2.h 中的任何内容,编译器知道吗?是否有可能在构建中对其进行优化?

否则,我的解决方案是将可选代码包装在预处理器指令中,然后定义我需要的内容。也许这是一种更安全、更高效的解决方案?

最佳答案

您是在谈论代码优化还是构建时间优化?

不必要的,未使用的headers不会改变正在生成的代码,所以这里不存在优化的问题。

但是,它会增加构建时间。这不是由构建工具优化的。如果您希望优化构建时间,请阅读 John LakosLarge Scale C++ Software Design一书。

关于c++ - C++ 编译器是否优化掉未使用的#includes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784422/

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