以下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