我正在读一本关于应用 C++ 的书。
包含守卫将防止在源文件编译期间多次包含头文件。您的符号名称应该是唯一的,我们建议根据文件名选择名称。例如,我们的文件 cache.h 包含这个包含保护。
#ifndef _cache_h_
#define _cache_h_
...
#endif // _cache_h_
Lakos 描述了使用冗余包含守卫来加速编译。见 [Lakos96]。对于大型项目,打开每个文件需要时间,才发现已经定义了包含保护符号(即文件已经被包含)。对编译时间的影响可能是巨大的,Lakos 表明,当仅使用标准包含保护时,编译时间可能会增加 20 倍。
[Lakos96]:大型 C++ 软件设计。
我没有 Lakos96 参考书来参考概念,所以在这里寻求帮助。
我对上述文字的问题是
作者所说的“对于大型项目,打开每个文件需要花费时间,却发现包含保护符号已经定义”是什么意思?
作者所说的“当使用标准包含防护时”是什么意思?
感谢您的时间和帮助。