以下C++代碼:浮到int在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相同即價值2.243
編譯器GCC爲int &浮動大小相同即4,但是那有什麼背後的輸出行爲的原因是什麼?
即使尺寸相同,整數和浮點數的表示也是不同的......您期望看到什麼? – Joel
這是UB。你在哪裏讀到轉換可以與工會完成? – Borgleader
@Borgleader你確定嗎?你不是通過不兼容的指針類型來混淆這種混淆嗎? – 2013-07-21 16:55:47