如果我在C中执行以下代码:
#include <stdint.h> uint16_t a = 4000; uint16_t b = 8000; int32_t c = a - b; printf("%d", c);
它正确打印'-4000'作为结果.但是,我有点困惑:当从另一个中减去一个更大的无符号整数时,不应该有算术溢出吗?这里有什么施法规则?这个问题看起来有点愚蠢,所以任何参考文献都会非常感激.
c integer casting overflow integer-overflow
c ×1
casting ×1
integer ×1
integer-overflow ×1
overflow ×1