最近我遇到了一段代码,它使用了一种我觉得很奇怪的转换方式。这里也有例子:
inline float asfloat(unsigned int x){
return *(float *) &x;
}
inline float asfloat(int x){
return *(float *) &x;
}
这种方式有什么好处吗?下面的“更简单”的代码不会做同样的事情吗?
inline float asfloat(unsigned int x){
return (float)x;
}
inline float asfloat(int x){
return (float)x;
}