相关疑难解决方法(0)

分配给较大宽度的整数时的C整数溢出行为

如果我在C中执行以下代码:

#include <stdint.h>

uint16_t a = 4000;
uint16_t b = 8000;

int32_t c = a - b;

printf("%d", c);
Run Code Online (Sandbox Code Playgroud)

它正确打印'-4000'作为结果.但是,我有点困惑:当从另一个中减去一个更大的无符号整数时,不应该有算术溢出吗?这里有什么施法规则?这个问题看起来有点愚蠢,所以任何参考文献都会非常感激.

c integer casting overflow integer-overflow

7
推荐指数
1
解决办法
3021
查看次数

标签 统计

c ×1

casting ×1

integer ×1

integer-overflow ×1

overflow ×1