#ifndef INFINITY
#ifdef _MSC_VER
union MSVC_EVIL_FLOAT_HACK
{
unsigned __int8 Bytes[4];
float Value;
};
static union MSVC_EVIL_FLOAT_HACK INFINITY_HACK = {{0x00, 0x00, 0x80, 0x7F}};
#define INFINITY (INFINITY_HACK.Value)
#endif
我目前入门与花栗鼠物理引擎,发现这头文件这段代码做了什么?
INFINITY用于设置无限动能的对象,但我不明白上面这段代码!
此外,它是以相反的顺序声明{0x00,0x00,0x80,0x7F},因为x86使用little-endian。 – jfs 2010-11-04 10:35:34
在你的答案中是“+/- INF”吗?因为我很确定位模式只是'+ Inf' :-) – paxdiablo 2010-11-04 10:37:30
没关系,我会自己修复它。我不能忍受有这么多票的错误答案:-) – paxdiablo 2010-11-04 10:59:41