为什么无符号整数溢出定义了行为,而有符号整数溢出却没有定义?
C和C+标准都很好地定义了无符号整数溢出。例如,C99标准 (§6.2.5/9)国家
§6.2.5/9
涉及无符号操作数的计算永远不能在flow上进行,因为不能用结果无符号整数类型表示的结果被减少为模,即大于可以由结果类型表示的最大值的数。
但是,这两个标准都声明有符号整数溢出是未定义的行为。同样,从C99标准(§3.4.3/1)
§3.4.3/1
UndefiNed行为的一个例子是flow上整数上的行为。
有历史的还是(更好的!)造成这种差异的技术原因?
富国沪深
哆啦的时光机
小唯快跑啊
相关分类