Visual Studio (C++) で、.cpp ファイルで定義されている重複ヘッダーを簡単に見つける方法はありますか?
また、この状況を検出する方法を見つけようとしています。
- A を含む B を含む C
- A は C を含む
- => A に C を含める必要はありません
Visual Studio (C++) で、.cpp ファイルで定義されている重複ヘッダーを簡単に見つける方法はありますか?
また、この状況を検出する方法を見つけようとしています。
この状況を検出したい場合は、このマクロをすべてのファイルの先頭に追加できます。ファイル名を A に置き換えます。
#if A_H
#error "Duplicate include"
#else
#define A_H
#endif
一般に、#pragma once または同等のマクロ ガードでそれらをマークし、気にするのをやめます。
MS コンパイラを使用している場合は、#pragma メッセージ (IIRC、代わりに #pragma warning または #pragma error である可能性があります) を、各ヘッダー ファイルとビルド出力の一番上にあるヘッダー ファイルの名前と共に配置できます。コンパイルされたファイルごとに含まれているすべてのリストが表示されます。
システムのヘッダーファイルは含まれないため、ヘッダーファイルに最適です。
含まれているすべてのヘッダーを表示する場合は、コンパイル オプションを編集して/P (ファイルへの前処理)を含めます。これにより、コードはコンパイルされませんが、代わりにプリプロセッサがファイルにリダイレクトされます。その後、それを grep して確認できます。 #include ステートメント。これらのファイルは大きくなることに注意してください。
PC-Lint (およびおそらく他の lint ツール) は、未使用のインクルード ファイルを示すことがあります。