2011-02-10 195 views
7

预编译头文件是什么?他们什么时候使用?预编译头文件

+2

[Precompiled Headers](http://stackoverflow.com/questions/1293538/precompiled-headers)的可能重复。另请参阅:[为什么使用预编译头文件(C/C++)?](http://stackoverflow.com/questions/903228/why-use-precompiled-headers-c-c) – 2011-02-10 07:00:50

回答

7

预编译头是在编译过程中使用的优化。

基本上,如果您编译的东西类似stdio.h具有完全相同的定义和环境,则可以安全地假定结果每次都是相同的。

因此,编译器会记住该头的“编译”版本,因此不必再次执行该操作。

在现实中,它往往是头,使相差如此的初始组,如果你的源文件中的每一个开头:

#define XYZZY 42 
#include <stdio.h> 
#include <stdlib.h> 

第一个完全编译,但会记住状态紧随其后那第三条线。下一个可以简单地将这三行完全丢弃并加载保存的状态,然后继续编译文件的其余部分。

我第一次在Windows上看到这个功能,它的海量的windows.h头文件,相信我,它对整体构建时间有很大的不同。