查看一个开源代码库,我遇到了这段代码:
#include "StableHeaders.h"
#include "polygon.h"
#include "exception.h"
#include "vector.h"
...
现在 StableHeaders.h 是一个预编译的头文件,它包含在“控制”cpp 中以强制生成它。无论如何,在预编译头之后出现的三个包含也包含在 StableHeaders.h 文件中。我的问题是,这些文件是否包含两次,以便代码库构建在不支持预编译头文件的编译器上?正如我假设包含警卫/标头缓存将使多个包含冗余无论如何...
顺便说一句, stableheaders.h文件对 win32 进行了检查(大致),所以我再次假设 stableheaders.h 中的包含不会包含在不支持预编译头文件的编译器中。