Skip to content
Latchkey

ヘッダーガードとは?

ヘッダーガード(インクルードガードとも呼ばれる)は、ヘッダーを包んでその内容が最初にインクルードされたときだけ処理されるようにする、プリプロセッサディレクティブの集合です。最初のインクルード時に一意のマクロが定義され、以降はそれを確認して本体をスキップします。これにより、同じ宣言が1つの翻訳単位に二度現れるのを防ぎます。

なぜ重要か

ガードがないと、複数のインクルードパスを通じて取り込まれたヘッダーは再定義エラーを生み、ビルドを壊します。ヘッダーガードは、およそ自明でないすべてのヘッダーにとって基本的な安全策です。

関連ガイド