龍神録プログラムの第5章について質問します。
extern宣言の分岐による処理の部分ですが、過去ログなども読んだ上で私の理解が正しいかどうかご教示ください。
--GV.h内--
#ifdef GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL extern
#endif
#include "function.h" //関数宣言
//画像用変数宣言部
GLOBAL int img_ch[2][12]; //キャラクタ画像9枚分 X2(変身用)
//構造体変数宣言部
GLOBAL ch_t ch; //キャラクタデータ宣言
--function.h内--
//graph.cpp
//描画メイン
GLOBAL void graph_main();
//key.cpp
//現在のキー入力処理を行う
GLOBAL int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
GLOBAL int CheckStateKey(unsigned char Handle);
//laod.cpp
//データのロード
GLOBAL void load();
しかしfunction.h内の関数については、main.cppではextern宣言しないといけないはずですが、変数と同じようにexternなしの宣言がされてしまうように思います。
これについて以下のような理解で正しいでしょうか。
①main.cppからの呼び出しによるexternなしの宣言は、プロトタイプ宣言である。
②extern宣言については、graph.cppやload.cppなどの別ファイルからの呼び出しでされるているからOK。
動作自体は問題ないのですが、いまいち自分で理解している気になりません。
よろしければご教示願います。よろしくお願いします。