[44章]func_countの値

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
whity

[44章]func_countの値

#1

投稿記事 by whity » 14年前

龍神録プログラミングの館を参考に、シューティングゲームを作っている者ですが、
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です。
どなたかわかる方、ご回答よろしくお願いします。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: [44章]func_countの値

#2

投稿記事 by Dixq (管理人) » 14年前

>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に戻ります。

whity

Re: [44章]func_countの値

#3

投稿記事 by whity » 14年前

main.cppのfps_wait();の次にenter_func_tm("待機した時間",1);が入っていませんでした;
ほんと、自分の注意力のなさに自分で驚きました。
管理人様、このようなくだらない質問に答えていただき、ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る