我有一个在无符号字节数组中收到的值,我想将其取消引用为浮点数。将 ptr 作为 uint8_t* 指向四个值 0,0,0xCD,0x42 的字节数组(这是一个小端系统)。
float val = *(float*)ptr;
返回 -1.34e8
当我输入:
*(float*)ptr;
在该部分代码中遇到断点后的表达式窗口中,它按预期给了我 102.5。此外,当我输入:
*(float*)(ptr - 1);
我得到不正确的 -1.34e8,好像编译器使用 ptr - 1 而不是我输入的内容。
我很困惑 - 我在这里错过了什么吗?