あなたの宿題、お姉さんが答えます

このエントリーをはてなブックマークに追加
899デフォルトの名無しさん
>897
16進数にして初期化。
0x00010135 とか。
float も一応4バイトの擬似整数?の16進で表現できるから。
でも面倒だよ。
900>897:2001/01/20(土) 01:19
つーか、設計ミス。データ構造を再考せよ。
901デフォルトの名無しさん:2001/01/20(土) 01:33
>>897
 共用体の初期値式は同じ型の単一の式か、あるいはその共用体の最初のメンバー
に対する大カッコ付きの初期値式のいずれかである。〜K&R第2版A8.7初期化より〜

 あー、意味がつかみにくいのー。
 ともかくそういう仕様らしい。

 共用体使う場合だと、どのメンバが有効かどうかを示す識別用の変数を使うのが多いと思うが、
ソレが入ってるならば、共用体やめるのがいいんじゃないか。
902初心者教育係:2001/01/20(土) 01:44
>897
それで初期化すると1がfloatの1.0なのかintの1なのか
不明瞭なのでは。素直にfloatにしてintには変換してはいかがですか?
903デフォルトの名無しさん:2001/01/20(土) 01:47
DATATYPE d[10];

d[0].i=1;
d[1].i=2;
d[2].i=3;
d[3].f=4.5678f;
d[4].i=5;
d[5].f=6.789f;
d[6].i=0;

ってやれば(藁
こういう風に書きなおすプログラム作ってコンピュータにやらせりゃ良いじゃん。
っていうか int と float の共有体の配列ってどういう場合に使うの?
なんかものすごく使いにくい気がする。
int と float ってメモリ的には全然互換性ないし。(サイズは同じだけど)