如果我将一个标头 (ah) 放入 stdafx.h 并且该标头包含另一个在 stdafx.h 中未提及的标头 (bh),那么每次有人包含 ah 时都会访问 bh 还是将其编译为 ah 的一部分?如果编译成ah,直接包含bh会怎样?这会被预编译吗?
我提出这个问题的动机是我正在尝试为我正在使用的软件优化 stdafx.h 文件的内容。重建和增量构建时间对我们都很重要。我想知道是否可以简单地在所有 .cpp 文件中搜索#include 指令并计算每个文件被包含的次数。经常包含的文件可能是 stdafx.h 文件的良好候选者。当然,如果我不仅要考虑包含哪些文件,还要考虑包含的文件包含哪些文件,那么这种策略完全是假的。
我怀疑这很重要,但我们使用的是 Visual Studio 2005。