5章がよくわからないんですが…
Re:5章がよくわからないんですが…
「main.cpp」「graph.cpp」「load.cpp」のそれぞれにグローバル変数が宣言されていると思います。
その宣言を削除するといいです。
またexternで宣言されている部分もありますが、(正確には宣言ではないですが)
その箇所も同様に削除します。
同様に関数宣言も削除すればOKです。
具体的には、
main.cpp
//現在のキー入力処理を行う
extern int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
extern int CheckStateKey(unsigned char Handle);
//データのロード
extern void load();
//描画メイン
extern void graph_main();
int img_ch[2][12]; //キャラクタ画像9枚分 X2(変身用)
ch_t ch; //キャラクタデータ宣言
graph.cpp
extern ch_t ch;
extern int img_ch[2][12];
load.cpp
extern int img_ch[2][12];
ですね。
その宣言を削除するといいです。
またexternで宣言されている部分もありますが、(正確には宣言ではないですが)
その箇所も同様に削除します。
同様に関数宣言も削除すればOKです。
具体的には、
main.cpp
//現在のキー入力処理を行う
extern int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
extern int CheckStateKey(unsigned char Handle);
//データのロード
extern void load();
//描画メイン
extern void graph_main();
int img_ch[2][12]; //キャラクタ画像9枚分 X2(変身用)
ch_t ch; //キャラクタデータ宣言
graph.cpp
extern ch_t ch;
extern int img_ch[2][12];
load.cpp
extern int img_ch[2][12];
ですね。
Re:5章がよくわからないんですが…
> またexternで宣言されている部分もありますが、(正確には宣言ではないですが)
externは、「どこか別のファイルで定義してある変数をここで使います」という
「宣言」ではないのでしょうか。
変数の、
実体確保を伴うのが「定義」、
実体確保を伴わないのが「宣言」、
と理解していましたが、間違えているでしょうか。
externは、「どこか別のファイルで定義してある変数をここで使います」という
「宣言」ではないのでしょうか。
変数の、
実体確保を伴うのが「定義」、
実体確保を伴わないのが「宣言」、
と理解していましたが、間違えているでしょうか。
Re:5章がよくわからないんですが…
>>externは、「どこか別のファイルで定義してある変数をここで使います」という
>>「宣言」ではないのでしょうか。
少し前に別の掲示板で
externは別ファイルに定義してるから宣言ではない
と思いっきりたたかれたことがあったので、「宣言」とは別物という認識したのですが^^;
(↑あまりにもひどかったので正直へこみました)
実際のことろはどうなんでしょうか?
>>「宣言」ではないのでしょうか。
少し前に別の掲示板で
externは別ファイルに定義してるから宣言ではない
と思いっきりたたかれたことがあったので、「宣言」とは別物という認識したのですが^^;
(↑あまりにもひどかったので正直へこみました)
実際のことろはどうなんでしょうか?
Re:5章がよくわからないんですが…
>toyoさん
定義と宣言とを兼ねるということはないと思います。たぶん。おそらく。
変数については、定義するか宣言するかのいずれか一方だけが
できるのではないでしょうか。
定義と宣言とを兼ねるということはないと思います。たぶん。おそらく。
変数については、定義するか宣言するかのいずれか一方だけが
できるのではないでしょうか。
Re:5章がよくわからないんですが…
> 定義と宣言とを兼ねるということはないと思います。たぶん。おそらく。
定義されたものは同時に宣言されています。
逆は成り立ちません。
toyoさんの言うとおり、変数宣言のみの記述を実現するにはexternを使用します。
実際には内部結合と外部結合の違いやCとC++でのグローバルオブジェクトの結合性とも関連するので、語弊があるかも知れません。
定義されたものは同時に宣言されています。
逆は成り立ちません。
toyoさんの言うとおり、変数宣言のみの記述を実現するにはexternを使用します。
実際には内部結合と外部結合の違いやCとC++でのグローバルオブジェクトの結合性とも関連するので、語弊があるかも知れません。