让我们假装我的.h文件创建预编译头文件如下所示:
stdafx.h中
#include "A.h" //an external library
..和“A.h”包括一堆其他标题:
A.H
#include "B.h" //other headers from an external library included by "A.h"
#include "C.h"
//...
也会为“Bh”和“Ch”生成预编译的头文件(以及这两个文件包含的头文件,等等......),或者我是否必须包含“Bh”和“Ch”我的“stdafx.h”也是?
答案 0 :(得分:3)
是的,预编译状态将包括B和C.
预编译的工作原理是将编译器运行到stdafx.h的末尾并将其状态转储到磁盘,然后在编译每个源文件的主体之前恢复该状态。编译stdafx.h时编译器看到的所有内容都会进入该状态。
(换句话说:编译stdafx.h的过程完全相同,无论你是否正在生成预编译状态或只是编译源文件"通常" - 它&#39 ;只是在预编译的情况下,编译器在文件的末尾停止。即使它想要,它也不能以不同的方式处理B和C.)