预编译头文件

详细描述请参看 msdn:precompiledheader相关介绍。

在VC6.0 编译器中(其实其他很多编译器也有相关技术),为了加快编译速度,常采用所谓的预编译技术。

比如说,你在调试一个很大的工程,全部编译一次需要很长的时间,而每次调试时的修改只是局部细微的,其他很多模块,尤其是调用其他库阿什么的都没改动过,于是自然会想到,那么如果好多东西确信不会在调试中改动何必一遍又一遍地编译呢?何不把它编译好放在一边,以后只是链接就可以了。

呵呵,VC编译器想到了这一点,

project->setting->c/c++->category->precompiled headers-> 下面有四种选项

默认的是use precompiled header file Through header[stdafx.h]

默认的情况下,在生成的VC工程下的.cpp文件中都有

#include "stdafx.h"

而stdAfx.cpp中就是一句“#include "stdafx.h" ”,

stdafx.h的目的就是包含哪些需要预编译的模块

比如在stdafx.h中 包含了 #include<xx.h> 以及inline function xxfunction

那么xx.h头文件所指的code,以及xxfunction的code就会被预编译,在调试时不再会被编译,(除非你怒了,tmd,怎么这么多奇怪的错误,于是乎,rebuild all).

以上 理解不一定是对的,准确的说明请参见msd中的detailed论述。

你可能感兴趣的:(C++,c,C#,vc++)