ページ 1 / 1
10章のmemsetに関して
Posted: 2012年9月17日(月) 20:30
by shon
はじめまして。龍神録の敵を表示させてみようの部分でmemsetのことについてよくわからない点があったため質問しました。memsetで配列を初期化するとき、int型ならば値が0になることが保証されていて、double型などの整数型ではないものは値が0になることが保証されていない、だったとおもうんですが、敵の構造体の中にdoubleがつかわれているとおもうんですが、なぜmemsetを使ってもいきなり敵が表示されるなどのおかしなことになったりしないのでしょうか?おかしなことにならないならどうしておかしなことにならないのでしょうか?Cを始めてからそんなにたっていないのでおかしなことを質問していたら申し訳ありません。
Re: 10章のmemsetに関して
Posted: 2012年9月17日(月) 20:40
by YuO
Windows上の処理系,というか,ISO/IEC/IEEE 60559 (a.k.a. IEEE 754) の浮動小数点数の表現において,全ビット0は0だから,というのが理由でしょうか。
8087系/80486系のFPU/CPUはIEEE 754の表現方式を使っているため,浮動小数点数演算をエミュレートするような特殊なコンパイラを使わない限り,全ビット0のfloat/double/long double型のオブジェクトの値は0になります。
わかりました
Posted: 2012年9月17日(月) 21:05
by shon
今あるパソコンではほとんどの場合0になるということなんですね。教えていただきありがとうございました。
Re: 10章のmemsetに関して
Posted: 2012年9月17日(月) 23:18
by Dixq (管理人)
館のコードはある程度VC++を前提としたコードになっています。
プロジェクトファイルもVC++ですし、#pragma onceという書き方もしています。
ご了承ください。
Dixqさんへ
Posted: 2012年9月18日(火) 01:06
by shon
わかりました。わざわざありがとうございます。