33

stdafx.h を含む非常に多くのコードが表示されます。たとえば、プリコンパイル済みヘッダーは必要ありません。そして、必要なすべてのシステム ヘッダーを自分で手動でインクルードしますその場合、必要な場所を認識しておくべき他の正当な理由はありますstdafx.hか?

4

6 に答える 6

17

プリコンパイル済みヘッダーを使用したくない場合は、標準のインクルード ファイルを使用しても意味がありません。これにより、それをインクルードするすべてのファイルのビルドが遅くなり、必要のない余分なものがインクルードされます。それを取り除き、必要なヘッダーだけを含めます。

于 2009-03-24T07:13:43.630 に答える
3

stdafx.hを使用せずにプリコンパイル済みヘッダー(これは良いことです)を使用できます(私もそれを忌み嫌います)。VC ++ 6.0にしかアクセスできませんが、プロジェクト設定| C / C ++ |プリコンパイル済みヘッダーに移動し、[プリコンパイル済みヘッダーの自動使用]を選択しますが、[コンパイル済み]ボックスは空のままにします。

于 2009-03-24T09:49:39.980 に答える
3

stdafx.hは単なる別のヘッダー ファイルです。必要ないと思われる場合は、遠慮なく含めずにプロジェクトから削除してください。

ただし、プリコンパイル済みヘッダーが機能するように正確に stdafx.h のようなファイルを用意し、すべてのものを各ソース ファイルに手動で含めないことは非常に一般的です。

于 2009-03-24T07:09:18.650 に答える
2

プリコンパイル済みヘッダーがなくても、すべてのファイルに共通のヘッダー インクルードと定義をグループ化する stdafx.h は便利です。

もちろん、すべてのファイルでこれらすべての定義を繰り返すことを選択できます。stdafx.h は厳密には必要ありません。

于 2009-03-24T07:08:39.087 に答える
1

他の人が述べたように、プリコンパイル済みヘッダーが必要ない場合は、実際には stdafx.h は必要ありません。そして、一般的なインクルードをグループ化するためだけにそれを使用することは、実際にはかなり悪い習慣です。

実際、プリコンパイル済みヘッダーを使用する場合でも、プロセスが実際に必要とするヘッダーを stdafx.h (または precompiled.h またはそれを呼び出したいもの) の後に含めることをお勧めします。 PCHの使用。

なんで?モジュールの依存関係を確認するため。PCH を無効にできると、必要なモジュールが含まれているかどうかを把握でき、.cpp ファイルと .h ファイルを解析してモジュールの相互依存性をチェックするツールを作成できます (もちろん、PCH ヘッダーは除きます)。

于 2009-03-24T07:43:13.700 に答える