关于溢出(Overflow)

当实际计算结果超出结果类型所能表示的范围时,就发生了溢出(overflow或underflow)。

对有符号整数和浮点数,C没有定义溢出的后果。但对于无符号数(unsigned),C明确规定结果等于实际算术结果模2n的值,其中n是结果无符号类型的bit数。

例如有两个无符号整数(unsigned int)4和7,则4-7的结果等于2n-3,如果int类型为16bit,则结果值为65533=216-3。