次の C++ コード:
union float2bin{
float f;
int i;
};
float2bin obj;
obj.f=2.243;
cout<<obj.i;
ガベージ値として出力を返します。
しかし
union float2bin{
float f;
float i;
};
float2bin obj;
obj.f=2.243;
cout<<obj.i;
f ie の値と同じ出力を与える2.243
コンパイラ GCC には int と float の同じサイズ、つまり 4 がありますが、この出力動作の背後にある理由は何ですか?