#ifdef MAINC言語のif 〜 else と同様に、#else は必要がなければ書かなくてもOKです。
/* MAIN が #define してあったらここの部分がコンパイルされる。#define されていなかったらここの部分は無視される */
#else
/* MAIN が #define されていなかったらここの部分がコンパイルされる。#define してあったらここの部分は無視される */
#endif
/* global.h */このヘッダファイルをどのように活用するかというと、次のようにします。
#ifdef MAIN
#define EXTERN
#else
#define EXTERN extern
#endifEXTERN int gData;
EXTERN int gData2;
EXTERN char *gFileName;
/* main.c */内部でどのような処理がされるかわかりますか?
/* グローバル変数を定義する */
#define MAIN
#include "global.h"
:
:/* sonota.c */
/* グローバル変数はexternで宣言する */
#include "global.h"
:
: