10章のmemsetに関して
-
shon
10章のmemsetに関して
はじめまして。龍神録の敵を表示させてみようの部分でmemsetのことについてよくわからない点があったため質問しました。memsetで配列を初期化するとき、int型ならば値が0になることが保証されていて、double型などの整数型ではないものは値が0になることが保証されていない、だったとおもうんですが、敵の構造体の中にdoubleがつかわれているとおもうんですが、なぜmemsetを使ってもいきなり敵が表示されるなどのおかしなことになったりしないのでしょうか?おかしなことにならないならどうしておかしなことにならないのでしょうか?Cを始めてからそんなにたっていないのでおかしなことを質問していたら申し訳ありません。
Re: 10章のmemsetに関して
Windows上の処理系,というか,ISO/IEC/IEEE 60559 (a.k.a. IEEE 754) の浮動小数点数の表現において,全ビット0は0だから,というのが理由でしょうか。
8087系/80486系のFPU/CPUはIEEE 754の表現方式を使っているため,浮動小数点数演算をエミュレートするような特殊なコンパイラを使わない限り,全ビット0のfloat/double/long double型のオブジェクトの値は0になります。
8087系/80486系のFPU/CPUはIEEE 754の表現方式を使っているため,浮動小数点数演算をエミュレートするような特殊なコンパイラを使わない限り,全ビット0のfloat/double/long double型のオブジェクトの値は0になります。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 10章のmemsetに関して
館のコードはある程度VC++を前提としたコードになっています。
プロジェクトファイルもVC++ですし、#pragma onceという書き方もしています。
ご了承ください。
プロジェクトファイルもVC++ですし、#pragma onceという書き方もしています。
ご了承ください。