インクルードガード(include guard)

プログラムの規模が大きくなると、誤ってヘッダーファイルを多重にインクルードしてしまうことがあります。これを防ぐのがインクルードガードです。次のプログラムを参照。

<original.h内>
#ifndef INCLUDED_ORIGINAL_H
#define INCLUDED_ORIGINAL_H

struct hoge {
	int  hoge1;
	char hoge2;
};

#endif

判定に使う定数マクロ名が、他の定数マクロとぶつからないように注意する必要があります。システムやコンパイラが予約している定数マクロ名は_(アンダースコア)から始まるようなっているので、この点さえ気をつければたいていは大丈夫のハズ。