4

これは正しさよりもスタイルの問題だと思います。

Visual Studio 2012 を使用すると、windows.h、direct3d11、atlbase、および標準の c++ ヘッダー ファイルのプリコンパイル済みヘッダーを使用すると、それらを使用しない場合よりもはるかに高速にプロジェクトをビルドできることがわかりました。このプロジェクトは Windows を多用しているため、このプロジェクトの他のオペレーティング システムやコンパイラに移植できるものはまったく必要ありません。

私の質問は、の後に使用されるヘッダー ファイル#include "Precomp.h"含める必要があるということです。もちろん、ヘッダー ガードまたは #pragma once があるため何もしませんが、依存関係を文書化するのに役立ちます。

.h ファイルではどうですか? そこにプリコンパイル済みヘッダーを含めることはできませんが、.h ファイルを自己完結型にするために、たとえばそこから何かを使用する場合は常に含めます。ただし、この .h ファイルを含む .cpp ファイルには、それを使用する .h ファイルの前に常に「Precomp.h」ファイルが含まれるため、これは不要です。

したがって、これは実際には正確さではなく、理解と保守性のための最良のスタイルに関するものです。

この状況でのプリコンパイル済みヘッダーの「ベスト プラクティス」とは何ですか?

4

1 に答える 1

1

経験則は非常に単純です。決して変更されないヘッダーのみを使用してください。したがって、コンパイルが遅くなるのは一度だけで、二度とありません。

これにより、SDK とコンパイラ ヘッダーを簡単に選択できます。独自のヘッダー。それほど多くはありません。次に、経験則 2 が適用されます。どこにでも #include する必要がある独自のヘッダーがありますか? そして、それらは実際に顕著な速度の違いを生み出すのに十分な大きさですか? とにかく、うまくいけば、それはほとんどの場合、2つのストライキに対してです。

于 2012-11-05T12:59:21.753 に答える