ヘッダー ガードとその内容の実装
ヘッダー ガードなどのプリプロセッサ ディレクティブは、コードのインクルードを管理し、多重コンパイルを防止するために重要です。その使用法を理解するために、指定された例を詳しく見てみましょう。
ヘッダー ファイル「add.h」と「subtract.h」では、#ifndef ディレクティブと #define ディレクティブが関数の宣言を囲むヘッダー ガードを実装しています。 「add()」や「subtract()」など。 ADD_H などの FILENAME_H 接尾辞は、一意のヘッダー ガード名を保証する規則です。
ヘッダー ガード間のコンテンツの定義
関数の宣言は、ヘッダー ガードの間に配置されます。修正されたコードに示されている #ifndef および #endif ディレクティブ:
#ifndef ADD_H #define ADD_H #include "mymath.h" int add(int x, int y); // Function declaration #endif
Int main() Placement
Int main() は、ヘッダファイル。これは、プログラムのエントリ ポイントを定義するために .cpp ファイルにのみ属します。
ヘッダー ガードの使用
ヘッダー ガードは、ガードが他の場所で定義されているかどうかを確認することによって機能します。そうでない場合は、#ifndef-#endif ブロック内のコードが処理されます。これにより、ヘッダー ファイルが .cpp ファイルに 1 回だけ組み込まれるようになります。複数の .cpp ファイルには、重複することなく同じガードされたヘッダー ファイルを含めることができます。
要約すると、ヘッダー ガードは、単一の .cpp ファイル内で複数のコンパイルを防ぐために、ヘッダー ファイルにコードを条件付きで含めるメカニズムを提供します。関数宣言とその他の必要なコードは #ifndef ディレクティブと #endif ディレクティブの間に配置する必要がありますが、int main() はヘッダー ファイルの外側に残ります。
以上がC での多重コンパイルを防ぐためにヘッダー ガードが不可欠なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。