【发布时间】:2009-04-08 07:14:35
【问题描述】:
如果我在 C 中执行以下代码:
#include <stdint.h>
uint16_t a = 4000;
uint16_t b = 8000;
int32_t c = a - b;
printf("%d", c);
它会正确打印“-4000”作为结果。但是,我有点困惑:从另一个减去一个更大的无符号整数时不应该有算术溢出吗?这里有什么铸造规则?这个问题似乎有点幼稚,所以任何参考都将不胜感激。
【问题讨论】:
标签: c casting integer overflow integer-overflow