我在C运行这段代码++:短指针浮
#include <iostream>
using namespace std;
int main()
{
float f = 7.0;
short s = *(short *)&f;
cout << sizeof(float) << endl
<< sizeof(short) << endl
<< s << endl;
return 0;
}
我得到以下出锅:
4 2 0
但是,在斯坦福大学所作的一篇演讲,杰里凯恩教授说:他确信了锅也不能为0
讲座是可喜爱here。他说在48分钟左右。
是他错了,还是说有些标准改变以来?或者平台之间是否有区别?
我使用g ++来编译我的代码。
编辑:在接下来的讲座中,他确实提到“大端”和“小尾数法”,并说,他们也影响结果。
他似乎在假设大排名 – 2012-08-14 07:52:06
这是UB。所以包括0在内的任何东西都可以加入 – 2012-08-14 07:52:37
为什么是UB?它只是平台依赖的。其他任何事情都可以。 – innochenti 2012-08-14 07:53:52