s5. 処理速度を一定にする。について

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

s5. 処理速度を一定にする。について

#1

投稿記事 by KANITAMA » 15年前

ここの記述の関数wait_fanc()でtをstaticにし、t=GetNowCount();としていますが
GetNowCount()が2147483648ミリ秒以上を返してきたらintが数字を保てなくなりオーバーフローしてしまうのではないでしょうか
こんなに起動する場合はないかもしれませんがなんとかこのを解決できませんでしょうか
それとも別に平気なのでしょうか

MNS

Re:s5. 処理速度を一定にする。について

#2

投稿記事 by MNS » 15年前

2147483647を超えたら、値は-2147483648に戻ると思いますよ。

Justy

Re:s5. 処理速度を一定にする。について

#3

投稿記事 by Justy » 15年前

>オーバーフローしてしまうのではないでしょうか
 オーバーフローはしません。
 GetNowCount()は 0x7fffffffを越えたら、0に戻り循環します。
 なので、前回の値より小さくなった場合は循環したと考えて、それを加味して処理すれば
大丈夫です。

KANITAMA

Re:s5. 処理速度を一定にする。について

#4

投稿記事 by KANITAMA » 15年前

皆さん返信ありがとうございます。
循環を加味した考えで対処してみます。
ありがとうございました。

Dixq (管理人)

Re:s5. 処理速度を一定にする。について

#5

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

時間関連の関数はこの辺参考になるでしょうか。

http://www.katto.comm.waseda.ac.jp/~kat ... /time.html

http://d.hatena.ne.jp/prog_pc/20090522/1242977667

ここに書いてない関数でclockもありますね。GetNowCountと同じような関数ですが。

私は趣味程度のプログラムならintでいいやって感じにしてますが、
製品に組み込むような時はgettimeofdayをlong long unsigned intで扱えるようにして使ってます。

intでも1ヵ月弱カウント出来るので、趣味で作る程度のゲームなら十分なんじゃないかと思います。

閉鎖

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