インクルードガード(include guard)
プログラムの規模が大きくなると、誤ってヘッダーファイルを多重にインクルードしてしまうことがあります。これを防ぐのがインクルードガードです。次のプログラムを参照。
<original.h内> #ifndef INCLUDED_ORIGINAL_H #define INCLUDED_ORIGINAL_H struct hoge { int hoge1; char hoge2; }; #endif
判定に使う定数マクロ名が、他の定数マクロとぶつからないように注意する必要があります。システムやコンパイラが予約している定数マクロ名は_(アンダースコア)から始まるようなっているので、この点さえ気をつければたいていは大丈夫のハズ。