[解決済み] C++のヘッダーファイルで#ifndefと#defineが使われているのはなぜですか?
2022-03-16 06:37:42
質問
ヘッダーファイルの冒頭で、このようなコードを見かけることがあります。
#ifndef HEADERFILE_H
#define HEADERFILE_H
そして、ファイルの末尾には
#endif
これは何のためにあるのでしょうか?
どのように解決するのですか?
これらは #インクルードガード .
ヘッダーがインクルードされると、ユニークな値(この場合は
HEADERFILE_H
が定義されています。そして、もし定義されていなければ、それを定義して、ページの残りの部分に進みます。
再びコードが含まれると、最初の
ifndef
が失敗し、空白のファイルになります。
そのため、型、列挙型、静的変数などの識別子の二重宣言を防ぐことができます。
関連
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] コピーアンドスワップ慣用句とは?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] マクロで無意味なdo-while文やif-else文を使っているのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み] main.objで既に定義されている [終了] 。
-
[解決済み] C++の識別子でアンダースコアを使用する場合のルールについて教えてください。
-
[解決済み] #pragma once vs include guards? 重複
-
[解決済み] .h ファイルで #ifndef CLASS_H と #define CLASS_H を使用し、.cpp で使用しない理由は何ですか?