最佳答案
无符号整数溢出在C和c++标准中都有很好的定义。例如,C99标准 (§6.2.5/9
)状态
包含无符号操作数的计算永远不会溢出, 因为不能由结果无符号整数类型表示的结果为 对比最大值大1的数取模 由结果类型表示
然而,这两个标准都指出有符号整数溢出是未定义的行为。同样,从C99标准(§3.4.3/1
)
未定义行为的一个例子是对整数溢出的行为
造成这种差异的原因是历史原因还是技术原因?