c++ - 这段代码是做什么的 : static union MSVC_EVIL_FLOAT_HACK INFINITY_HACK = {{0x00, 0x00, 0x80, 0x7F}};

标签 c++

#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/

相关文章:

c++ - gSOAP C++ 客户端内存泄漏

c++ - 在不使用 #include 的情况下使用另一个类中的函数

c++ - 如何运行SFML模板?

C++ 字符串两边的括号

c++ - 对 STL 列表的子类进行排序

C++ 编译错误只有一个候选函数

c++ - 无法在 C++ 项目上从 Meson 运行 Doxygen

c++ - 为什么 C++ 字符串不需要 std::forward 来调用所需的函数?

c++ - libcurl 内置压缩支持与否

c++ - 如果 CHttpConnection::OpenRequest 返回 NULL 我如何找出原因