/* myheader.h */こうすると、myheader.h を何回 #include してもエラーになることはありません。そのため 、ヘッダファイルの管理が楽になるのです。
#ifndef __myheader_H__
#define __myheader_H__
:
:
:
#endif
/* 古いコンパイラではエラーになる例 */こういう場合はしょうがないので次のような小手先殺法を使います。
#ifndef __global_H__
#define __global_H__#ifdef MAIN
#define EXTERN
#else
#define EXTERN extern
#endif /* ifdef MAIN */EXTERN int gData;
:
:
#endif /* ifdef __global_H__ */
/* 古いコンパイラで使う場合 */ただし、一番良い解決策は新しいコンパイラを使用することです。
#ifbdef __global_H__
#define __global_H__
/* 構造体の宣言など */
:
:
#endif /* ifdef __global_H__ */#ifdef MAIN
#define EXTERN
#else
#define EXTERN extern
#endif /* ifdef MAIN *//* グローバル変数の宣言 */
EXTERN int gData;
:
:#ifdef MAIN
#undef MAIN
#endif /* ifdef MAIN */