http://dixq.net/rp/5.html
このページが理解できません。
・他のファイルで定義した関数はメインファイルではextern宣言する必要がある。
て書いてありますよね。
メインファイルからは
#define GLOBAL_INSTANCE
#include "../include/GV.h"
としてGV.hを取り込みます。
更にその中のfunction.hを取り込みます。
このときGLOBAL_INSTANCE が定義されていますから
#ifdef GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL extern
#endif
より
GLOBALは空白です。
--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();
というソースでは、
>>メインファイルではextern宣言する必要がある。
が満たされていない気がします。
龍神録プログラミングの掲載ミス?それとも私の勘違い?
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 龍神録プログラミングの掲載ミス?それとも私の勘違い?
不適切な方法について言及するのもなんですが・・・、
一応変数はexternしないと使えませんが、関数はstaticではない場合、プロトタイプ宣言してあれば他のファイルでも使えます。
また、館の設計上、main.cppからの呼び出しで定義している物が多いですが、
関数定義や変数定義はどこでやっても構いません。
少し記述を修正しました。
一応変数はexternしないと使えませんが、関数はstaticではない場合、プロトタイプ宣言してあれば他のファイルでも使えます。
また、館の設計上、main.cppからの呼び出しで定義している物が多いですが、
関数定義や変数定義はどこでやっても構いません。
少し記述を修正しました。