39

ファイルの目的と、プリコンパイル済みヘッダーstdafx.hの意味は何ですか?

4

4 に答える 4

30

stdafx.hは、Microsoft Visual Studio IDEウィザードによって生成されたファイルであり、頻繁に使用されるがほとんど変更されない標準システムとプロジェクト固有のインクルードファイルの両方を記述します。互換性のあるコンパイラ(たとえば、Visual C ++ 6.0以降)は 、このファイルをプリコンパイルして、全体的なコンパイル時間を短縮します

Visual C ++は #include "stdafx.h"、コンパイルオプションがオフになっていない限り、 ソースファイルの/Yu'stdafx.h'前に何もコンパイルしません(デフォルト)。その行までのソース内のすべてのコードがすでにコンパイルされていることを前提としています。

http://en.wikipedia.org/wiki/Precompiled_header

于 2010-06-04T16:34:02.230 に答える
13

他の優れた答えを拡張するには:

stdafx.hは、単一のプロジェクトで一般的に使用されるすべてのヘッダーを含むファイルです。たとえば、これにはすべてのWindows定義が含まれます。このファイルには非常に多くのものが含まれているため、コンパイラはそれを処理するときに少し遅くなります。プリコンパイルすることで、コンパイラは処理の多くをスキップして、何度も再利用できます。含まれているファイルが変更されない限り、プリコンパイルされた結果も変更する必要はありません。

名前stdafx.hは単なる慣例です。代わりに新しいファイルを含めるようにすべてのソースを変更した場合は、簡単に別の名前に変更できます。

実際のプリコンパイル済みヘッダーファイルを生成するには、プリコンパイル済み出力を生成するための特別なコンパイルフラグを持つプロジェクト内の1つのソースファイルが必要です。慣例により、このファイルの名前はstdafx.cppです。そのソースファイルの設定を調べると、その違いがわかります。

于 2010-06-04T16:50:45.247 に答える
6

通常、プリコンパイル済みヘッダーの名前に使用されます。その正確な名前を使用する必要はありませんが、デフォルトだけです。 ここでは、VC++およびg++でプリコンパイル済みヘッダーについて詳しく説明します

コンパイルを高速化するには、プリコンパイル済みヘッダーを使用します。

アイデアは、変更されないヘッダーファイルを配置し、プリコンパイル済みヘッダー内のいくつかのソースファイルで使用することです。そうすれば、コンパイラーはコンパイル単位ごとにこれらのヘッダーを再処理する必要がなくなります。

于 2010-06-04T16:33:54.163 に答える
2

コンパイル時間を短縮するためのプリコンパイル済みヘッダーです。

于 2010-06-04T16:34:12.637 に答える