いつもお世話になっています。「龍神録のプログラミング」の第六章におきまして、
不明な箇所がありましたので、質問させていただきます。
(前略)
//メインループ
while(ProcessLoop() == 0){
switch(func_state){
case 0:
load(); //データロード
first_ini(); //初回の初期化
func_state = 100;
break;
case 100:
graph_main(); //描画メイン
break;
default:
printfDx("不明なfunc_state\n");
break;
}
(略略・・・)
ここの部分なのですが、
このswitch(func_state)の制御文に当たる func_stateは
どこを見ても初期化されていなかった(様に見えた)のですが、なぜか初期値に0が入っています。
(case 0を実行しているので、おそらく0が代入されているのでしょうが…)
func_stateは ヘッダーファイルで、extern int func_state; と宣言されているだけです。
extern宣言されたものは、勝手に初期値0が入るということでも起こっているのでしょうか?
ご返答よろしくお願いします。
externについて
Re:externについて
確か、グローバル変数は0で初期化されることがC言語の規格で保証されていたはずです。
それはC++でも同じだと思います。詳しいことはC/C++言語仕様を参照してください。
それはC++でも同じだと思います。詳しいことはC/C++言語仕様を参照してください。
Re:externについて
SCI様、御返答ありがとうございます。
そうだったのですか。やはり、といった感じですね。
実行結果からいえば、それ以外は考えられなかったですが・・・
コメント通りにC/C++言語仕様をネットでもって見てみます。
こんな遅くに返答していただき、ありがとうございました。m(_ _)m
そうだったのですか。やはり、といった感じですね。
実行結果からいえば、それ以外は考えられなかったですが・・・
コメント通りにC/C++言語仕様をネットでもって見てみます。
こんな遅くに返答していただき、ありがとうございました。m(_ _)m