龍神録プログラミングの館を参考に、シューティングゲームを作っている者ですが、
44章のデバッグ支援関数を実装してみようと思い、コンパイル、実行してみたのですが、
実行した直後に"func_countの値30が異常です"と何行もメッセージが出力されて、デバッグ関数を動かすことができません。
試しに
int func_count;
と宣言されているところを
int func_count=0;
と変えてみても実行結果が変わらず、
#define FUNC_MAX 30
を
#define FUNC_MAX 31
とすると今度は"func_countの値31が異常です"と出力されます。
func_countの初期化はどこで行っているのでしょう?
そして、どうしてこのような実行結果になってしまうのでしょうか。
ちなみにコンパイラは Borland C++ Compiler 、OSは windows7 64bitです。
どなたかわかる方、ご回答よろしくお願いします。
[44章]func_countの値
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: [44章]func_countの値
>int func_count;
>と宣言されているところを
>int func_count=0;
>と変えてみても実行結果が変わらず、
グローバル変数はデフォルトで0になるので、0を入れても結果は変わりません。
> func_countの初期化はどこで行っているのでしょう?
enter_func_tm関数を見て頂ければお分かり頂けると思いますが、
その関数内で
func_count=0;
をしているところで、0を格納しています。
初期化が問題なのではなく、1ループにFUNC_MAX回以上コールしているためでしょう。
配列で用意しているので、関数を増やすと定義の値をいちいち増やさないといけません。
C++であればstd::vector等を使えば楽になるかと思います。
ということで、
enter_func_tmをコールしている回数を確認して下さい。
この関数のflagに1を渡せばカウンタが0に戻ります。
>と宣言されているところを
>int func_count=0;
>と変えてみても実行結果が変わらず、
グローバル変数はデフォルトで0になるので、0を入れても結果は変わりません。
> func_countの初期化はどこで行っているのでしょう?
enter_func_tm関数を見て頂ければお分かり頂けると思いますが、
その関数内で
func_count=0;
をしているところで、0を格納しています。
初期化が問題なのではなく、1ループにFUNC_MAX回以上コールしているためでしょう。
配列で用意しているので、関数を増やすと定義の値をいちいち増やさないといけません。
C++であればstd::vector等を使えば楽になるかと思います。
ということで、
enter_func_tmをコールしている回数を確認して下さい。
この関数のflagに1を渡せばカウンタが0に戻ります。
-
whity
Re: [44章]func_countの値
main.cppのfps_wait();の次にenter_func_tm("待機した時間",1);が入っていませんでした;
ほんと、自分の注意力のなさに自分で驚きました。
管理人様、このようなくだらない質問に答えていただき、ありがとうございました。
ほんと、自分の注意力のなさに自分で驚きました。
管理人様、このようなくだらない質問に答えていただき、ありがとうございました。