为什么有人在C中使用这种类型的演员? float的引用被转换为一个int指针,然后被取消引用

前端之家收集整理的这篇文章主要介绍了为什么有人在C中使用这种类型的演员? float的引用被转换为一个int指针,然后被取消引用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在阅读关于Carmack的快速反平方根算法,并注意到这一点:
float x;
// ... //
int i = *(int*)&x;

为什么有人会选择使用这种怪异的投射,而不是仅仅是以下的?

int i = (int)x;

解决方法

那不一样.

int i =(int)x;将float转换为int,这将简单地截断它.

int i = *(int *)& x;将加载到我当前存储在x中的相同位.结果与截断x完全不同.

猜你在找的C&C++相关文章