2011-02-10 161 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頭文件,相信我,它對整體構建時間有很大的不同。