在构建不断增长的类/函数库时,我经常看到一种“伞形”头文件,它#include 了项目的所有常见头文件。例如:
dsp.h
#include "file1.h"
#include "file2.h"
...
#include "filex.h"
有时我可能需要所有东西,但有时可能只需要选择一些功能/选项。例如,如果#include dsp.h,但不使用 file2.h 中的任何内容,编译器是否知道?是否有可能在构建中对其进行优化?
否则,我的解决方案是将可选代码包装在预处理器指令中,然后定义我需要的内容。也许这是一个更安全、更有效的解决方案?