因为c++多文件是分别编译的。如果不同的源文件都需要相同的一些头文件,那么这些源文件势必要包含这些头文件,这样,编译器在进行编译的时候将头文件内容展开到各源文件中,必然就造成对头文件内容进行重复编译,如果头文件很多,这么编译的速度就很慢。引入预编译头文件stdAfx.h。编译器在编译工程时,首先编译stdAfx.h生成一个.pch二进制文件,编译器在后续编译中可以识别该文件中的内容,各源文件只要#include了stdAfx.h,就等于包含了.pch文件,也就是说,编译器在后续编译中对stdAfx.h不再一次次的重复编译,而是直接拿.pch文件来用。所以我们就可以把常用的头文件#include在stdAfx.h中。为了stdAfx.h被编译生成.pch文件,还要通过一个源文件来用stdAfx.h生成.pch文件。通常采用stdAfx.cpp.
通过【setting】-【c/c++】-【Precompiled Headers】可以看到,StdAfx.cpp用于产生.pch文件,其它源文件都是使用.pch文件