2011-02-10 20 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) –

答えて

7

コンパイル済みヘッダーは、コンパイル処理中に使用される最適化です。

基本的には、全く同じ定義と環境でstdio.hのようなものをコンパイルすると、毎回結果が同じであると見なすことができます。

したがって、コンパイラはそのヘッダの "コンパイル済み"バージョンを覚えているので、再度コンパイルする必要はありません。ソースファイルの一つ一つが始まる場合

現実に

、それはとても違いヘッダの初期グループになる傾向がある、:

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

最初のものは完全にコンパイルしますが、すぐに次の状態を記憶していますその3行目。次の行は、3行を完全に捨てて、ファイルの残りの部分をコンパイルする前に保存された状態をロードするだけです。

初めてこの機能がWindowsに搭載されたのは、という大規模なwindows.hヘッダーファイルであり、全体的なビルド時間に大きな違いがあったと思います。

関連する問題