>> C言語入門トップに戻る

プリコンパイル済みヘッダ

今回はプリコンパイル済みヘッダについて説明します。
大規模なプログラムを作ることになってくると、当然インクルードするヘッダファイルが増えてきますよね?
実はただinclude文でヘッダファイルを取り込んでいると、
毎回そのヘッダファイルを解析してから読み込むという動作を
繰り返して行っているのでコンパイルに多少時間がかかってます。
ファイルが増えてくると当然比例してコンパイル時間がどんどん長くなっていきます。
プリコンパイル済みヘッダとはコンパイルの最初にインクルードするヘッダを全て解析したヘッダファイルのことで、
それを取り込むファイルは既にその解析済みのヘッダを読むことになります。
よって、コンパイル時間が劇的に早くなります。

まず、ファイルを二つ作る必要があります。
一つはまとめてヘッダファイルを取り込むヘッダファイルが一つと、
コンパイル時にプリコンパイル済みヘッダを作成する指示を出すファイルです。
名前は、好きな名前で構わないですが、ヘッダとcppファイルは同じ名前が良いと思います。
今回はpch.cppファイルと、pch.hというヘッダファイルを2つ作ることにします。

ファイルを作ったら、プロジェクトを選択して、右クリック→プロパティを選択して下さい。

次に、C/C++の項目を選択し、プリコンパイル済みヘッダを選択します。
その後右の「プリコンパイル済みヘッダーの作成/使用」という項目を、
「プリコンパイル済みヘッダーファイルを使用する」に設定して下さい。
さらにその下の「ファイルを使用してPCHを作成/使用」という項目を、
先程作ったpch.hというファイル名を記入して下さい。入力したらOKを押します。

次に、pch.cppファイルを選択し、右クリック→プロパティーを押します。
次に、C/C++の項目を選択し、プリコンパイル済みヘッダを選択します。
その後右の「プリコンパイル済みヘッダーの作成/使用」という項目を、
「プリコンパイル済みヘッダーを作成する」に設定して下さい。
さらにその下の「ファイルを使用してPCHを作成/使用」という項目を、
先程作ったpch.hというファイル名を記入して下さい(たぶん自動で入ってます)。入力したらOKを押します。

次にpch.cppファイルの中に、pch.hのヘッダファイルをインクルードするだけの文を書きます。

次にpch.hファイルの中に、今後取り込む予定のヘッダファイルを全てインクルードします。

準備は以上です。
後は、各ヘッダファイルを取り込む予定だったcppファイルで、pch.hをインクルードします。
例えば、

#include "pch.h"
#include <winsock.h>

と書くと、
#include "pch.h"と書いた行までは、作成されたプリコンパイル済みヘッダを読み込みにいってくれます。
その下に書くヘッダファイルはまた独自に読み込まれて解析されます。

流れとしては、

1.コンパイル開始

2.pch.cppのコンパイル時にプリコンパイル済みヘッダファイルが作成される

3.各cppファイルがそのプリコンパイル済みヘッダを読みに行く。

というような流れになっています。

大規模なプロジェクトでなければ使う必要もありませんが、
コンパイルが遅くなってきたなと感じたら是非使ってみましょう。


>> 【バブルソート】に進む
>> C言語入門トップに戻る