这个问题与 arm-none-eabi-gcc 5.4.1 版有关。(我知道它很旧,但我必须使用它)。
int32_t tmp = INT32_MIN / 2;
这将产生以下程序集:
mov.w r3, #1073741824 ; 0x40000000
在 stdint.h 中查看此宏时:
#define INT32_MIN (-0x80000000)
是正确的。
调试器还显示对应于 0x40000000 的正数。
我希望0xC0000000。
这是该特定 gcc 预处理器的错误还是正常?