インクルードガード
提供: C++入門
2013年12月27日 (金) 20:59時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「インクルードガード (include guard)とは、C/C++のヘッダファイルのインクルードが2回目以降の展開を防ぐためのスキップす...」)
スポンサーリンク
インクルードガード (include guard)とは、C/C++のヘッダファイルのインクルードが2回目以降の展開を防ぐためのスキップするためにプロプロセッサに指示するテクニックです。
読み方
- インクルードガード
- いんんくるーどがーど
- include guard
- いんんくるーどがーど
概要
プロプロセッサは、プロプロセッサディレクティブ include に遭遇するたびに、ヘッダファイルを展開しようとします。ヘッダAがヘッダBを、ヘッダBがヘッダAを互いにインクルードしているとしたら、どちらか一方をインクルードすると定義が二重に定義されます。インクルードガードは、そういった事態を防ぐものです。
ifndef/define を使用してインクルードガードを書くのが一般的でした。 C++では、プラグマ #pragma onceを使用して、インクルードガードを実現します。
インクルードガード
#pragma once
従来型のインクルードガード
#ifndef HOGE_H #define HOGE_H class Hoge { }; #endif // HOGE_H
関連項目
ツイート
スポンサーリンク