3

プリコンパイル済みヘッダーでヘッダーガードが使用されない理由がわかりません...何かアイデアはありますか?

4

4 に答える 4

3

他の場所ではなく、ファイルに最初に含める"stdafx.h"必要があるためです。.cpp

于 2011-05-12T01:05:04.997 に答える
3

他のヘッダーをインクルードするだけであれば、その必要はありません。これらのファイルを複数回含めることができない場合は、独自のヘッダー ガードがあります。 stdafx.h間違って使用しない限り、それ自体は何回含まれていてもかまいません。

于 2011-05-12T02:06:29.987 に答える
1

通常、stdafx.hは、最初のステートメントとしてcppファイルごとに1回だけ含まれ、通常、他のファイルには含まれません。したがって、stdafx.hを再帰的にインクルードする可能性は最小限であるため、インクルードガードの「不必要性」があります。

#pragma once念のため、ファイルの先頭で使用することをお勧めします。

于 2011-05-12T01:06:18.347 に答える
1

プリコンパイル済みヘッダーのコードはわかりませんが、「#pragma once」が含まれていると思います。これは同じ効果がありますが、VSでのみ機能します(少なくとも標準ではありません)。ウィザードがこれらを使用してMFCファイルを作成したことを覚えています。

于 2011-05-12T01:06:24.597 に答える