10章のmemsetに関して

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

10章のmemsetに関して

#1

投稿記事 by shon » 13年前

はじめまして。龍神録の敵を表示させてみようの部分でmemsetのことについてよくわからない点があったため質問しました。memsetで配列を初期化するとき、int型ならば値が0になることが保証されていて、double型などの整数型ではないものは値が0になることが保証されていない、だったとおもうんですが、敵の構造体の中にdoubleがつかわれているとおもうんですが、なぜmemsetを使ってもいきなり敵が表示されるなどのおかしなことになったりしないのでしょうか?おかしなことにならないならどうしておかしなことにならないのでしょうか?Cを始めてからそんなにたっていないのでおかしなことを質問していたら申し訳ありません。

YuO
記事: 947
登録日時: 15年前
住所: 東京都世田谷区

Re: 10章のmemsetに関して

#2

投稿記事 by YuO » 13年前

Windows上の処理系,というか,ISO/IEC/IEEE 60559 (a.k.a. IEEE 754) の浮動小数点数の表現において,全ビット0は0だから,というのが理由でしょうか。
8087系/80486系のFPU/CPUはIEEE 754の表現方式を使っているため,浮動小数点数演算をエミュレートするような特殊なコンパイラを使わない限り,全ビット0のfloat/double/long double型のオブジェクトの値は0になります。

shon

わかりました

#3

投稿記事 by shon » 13年前

今あるパソコンではほとんどの場合0になるということなんですね。教えていただきありがとうございました。

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

Re: 10章のmemsetに関して

#4

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

館のコードはある程度VC++を前提としたコードになっています。
プロジェクトファイルもVC++ですし、#pragma onceという書き方もしています。
ご了承ください。

shon

Dixqさんへ

#5

投稿記事 by shon » 13年前

わかりました。わざわざありがとうございます。

閉鎖

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