私のプロジェクトには、多くのヘッダーを含むヘッダーファイル common.h があります。一部のファイルには、Common.h と、Common .h に既に存在する他のヘッダーが含まれているため、前処理段階では、多くの関数が 2 回プロトタイプ化されます。 (Included ヘッダーから 1 回、Gui.h から 1 回)。長期的にはこれが問題を引き起こすのではないかと思っていました。
提案してください..事前に感謝..
私のプロジェクトには、多くのヘッダーを含むヘッダーファイル common.h があります。一部のファイルには、Common.h と、Common .h に既に存在する他のヘッダーが含まれているため、前処理段階では、多くの関数が 2 回プロトタイプ化されます。 (Included ヘッダーから 1 回、Gui.h から 1 回)。長期的にはこれが問題を引き起こすのではないかと思っていました。
提案してください..事前に感謝..
ヘッダーにはガードを含めて、一度だけ処理されるようにする必要があります。
#ifndef SOME_UNIQUE_STRING
#define SOME_UNIQUE_STRING
// Everything else here
#endif
「すべて」とは、「すべて」を意味します#include
。
SOME_UNIQUE_STRING は、他のどこかで別の定義と一致する可能性が低い限り、モジュールの名前にすることができます。
ライブラリ ヘッダーを見ると、このようなインクルード ガードが使用されていることがわかります。
Chemistpp が示唆したように、
#pragma once
は非標準ですが、試すのに適したオプションです。
リンクに記載されている長所と短所を確認してください。