2

#include "stdafx.h"プリコンパイル済みヘッダーを使用する場合、すべてのファイルが必要ですか? または、ソースファイルのみに含める必要がありますか。

編集:また、私のプリコンパイル済みヘッダー ファイル#includesには多くの STL ヘッダーが含まれています。しかし、私のヘッダーには、返される関数std::vectorやそのようなものが時々あるので、#include <vector>とにかくする必要があります。これは stdafx.h をインクルードするより悪いですか? 単体テスト フレームワークの定義を含める必要があります。

4

4 に答える 4

4

すべてのソース ファイルは、コメント以外の行の前にそれを含める必要があります。すべてのソース ファイルが他のヘッダーの前にそれをインクルードするため、ヘッダーにインクルードする必要はありません。

于 2009-06-26T03:21:17.203 に答える
1

プロジェクト レベルまたはファイル レベルで、プリコンパイル済みヘッダー ファイルを使用するかどうかを設定できます。プロジェクト設定については、プロジェクト プロパティ ダイアログに移動し、[構成プロパティ] / [C/C++] / [プリコンパイル済みヘッダー] をクリックします。Create/Use Precompiled Header のオプションがあります。ファイル プロパティ ダイアログで同じオプションを設定することにより、各 .cpp ファイルのプロジェクト レベル設定を上書きできます。

于 2009-06-26T03:28:44.443 に答える
0

すべてのC/C ++ファイルでは、プリコンパイル済みヘッダーを上部に配置する必要があります。そのプロジェクトに設定されている場合はそうです。ただし、C / C ++ファイルごとにオフ/オンにすることができます(Keiが言ったこと)。

含める標準ヘッダーがある場合は、それらすべてをプリコンパイル済みヘッダーに配置します。次に、それらを通常のヘッダー(.h)ファイルに含める必要があります。すべてのプロジェクトとファイルがプリコンパイル済みヘッダーを使用している限り。

于 2009-06-26T04:12:52.950 に答える
0

他の人が言ったように、プリコンパイル済みヘッダーを含める必要があるのはソース ファイルだけです。私の意見では、コードはプリコンパイル済みヘッダーの有無にかかわらず正しくコンパイルする必要があることだけを付け加えておきます。これを実現するには、ヘッダーは自己完結型であり、他の必要なヘッダーを含むソース ファイルに依存しないようにする必要があります。プリコンパイル済みヘッダーは、プロジェクトで使用されるすべてのヘッダーのリポジトリとしてではなく、コンパイルを高速化する方法としてのみ見ています。

于 2009-06-26T08:38:57.777 に答える