1. ホーム
  2. c++

[解決済み] C++のヘッダーファイルで#ifndefと#defineが使われているのはなぜですか?

2022-03-16 06:37:42

質問

ヘッダーファイルの冒頭で、このようなコードを見かけることがあります。

#ifndef HEADERFILE_H
#define HEADERFILE_H

そして、ファイルの末尾には

#endif

これは何のためにあるのでしょうか?

どのように解決するのですか?

これらは #インクルードガード .

ヘッダーがインクルードされると、ユニークな値(この場合は HEADERFILE_H が定義されています。そして、もし定義されていなければ、それを定義して、ページの残りの部分に進みます。

再びコードが含まれると、最初の ifndef が失敗し、空白のファイルになります。

そのため、型、列挙型、静的変数などの識別子の二重宣言を防ぐことができます。