【发布时间】:2010-10-17 00:28:39
【问题描述】:
由于可能undefined behavior,在实际加/减之前检测整数溢出有很多问题。所以,我的问题是
为什么它首先会产生这个undefined behavior?
我能想到两个原因:
1) 在这种情况下产生异常的处理器。当然,它可以被关闭,而且很可能一个写得很好的 CRT 可以做到这一点。
2) 使用其他二进制数字表示的处理器(1 的补码?以 10 为底?)。在这种情况下,未定义的行为将表现为不同的结果(但不会崩溃!)。好吧,我们可以忍受。
那么,为什么有人要避免引起它呢?我错过了什么吗?
【问题讨论】:
标签: c