float として逆参照したい符号なしバイト配列で受け取った値があります。ptr を 0,0,0xCD,0x42 の 4 つの値のバイト配列を指す uint8_t* とします (これはリトルエンディアン システムです)。
float val = *(float*)ptr;
return -1.34e8
入力すると:
*(float*)ptr;
コードのそのセクションでブレークポイントをヒットした後の式ウィンドウでは、期待どおりに 102.5 が表示されます。さらに、私が入力すると:
*(float*)(ptr - 1);
コンパイラが入力したものの代わりに ptr - 1 を使用したかのように、間違った -1.34e8 が返されます。
私は混乱しています - ここで何か不足していますか?