果有符号整数的溢出有明确的「环绕」行为，那么这样的程序转化就是非法的。代码越复杂，类似的优化就越难被人类发现。如果代码同时还有其它方面的优化，例如，就更难发现了。让有符号整数溢出未定义还有另一个好处：存储、操作变量的值时，可以在比变量本身更大的寄存器中进行。假设源代码中变量的类型比原生寄存器的宽度要窄（比如常见的在64位机器上的int类型），那么编译器就可以在生成机器码时把这个变量当作64位有符号数，对代码的语义没有任何影响。反之，如果32位有符号整数的溢出有明确定义，那么在针对64位机器编译时，编