stdafx.hとは、C++で、なぜ存在しているのか
stdafx.h は Microsoft Visual Studio でのプリコンパイル済みヘッダファイルで、コンパイル時間の短縮とコンパイル時の重複作業の削減に役立てられます。
具体的には、
- 再コンパイルする時間を削減するためによく使う標準ライブラリヘッダファイルを先んじてコンパイルする。
- プロジェクト全体で使いやすいように、一般的なマクロやグローバル変数をあらかじめ定義しておくと便利です。
- プロジェクトの他のソース ファイルで使用できる、プロジェクト固有のヘッダー ファイルを含めます。
- プリコンパイルされたヘッダーファイルを使うことでコンパイル速度が向上し、プリコンパイルされたヘッダーファイルは一度だけコンパイルすれば、以降のコンパイル処理でそのまま利用できるため。
stdafx.hを使用する際には注意が必要
- ソースコードの先頭に#include “stdafx.h”として、プリコンパイルヘッダーを取り込む。
- プロジェクトのプロパティでプリコンパイル済みヘッダーを有効にする必要があります。
- プリコンパイルされたヘッダーファイルのインクルードをソースコードの一番上に記述する必要がある。プリコンパイルされたヘッダーファイルが無効になる問題を防ぐためである。
なお、stdafx.h は Microsoft Visual Studio でコンパイルする時のみ必要で、それ以外のコンパイラでは必要ありません。