#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
我目前正在开始使用 Chipmunk 物理引擎并在头文件中找到它
INFINITY 用于为物体设置无限动量,但是我不明白上面这段代码的作用!
最佳答案
它将 INFINITY 设置为由十六进制位 0x7f800000 表示的浮点值,即 +INF
。由于某些原因,Visual Studio 没有定义 INFINITY。
关于c++ - 这段代码是做什么的 : static union MSVC_EVIL_FLOAT_HACK INFINITY_HACK = {{0x00, 0x00, 0x80, 0x7F}};,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4095653/