C++ 中无符号整形溢出是 UB 吗?

一本 C++ 教材这样写道: C++ 确保了无符号类型如果溢出,则其值将为范围另一端的取值;但 C++ 并不保证符号整形溢出时不出错。想请教如下一个问…
关注者
11
被浏览
11,539

9 个回答

按标准的说法溢出是会回环的,uint、ulong、ulonglong都是这样

但是有一点特殊情况,假设你用ushort,在你环境下是16bit的,而你环境下int是32bit,由于比int短的都要promote到int,所以如果两个ushort计算,导致int溢出,是可能的,例如60000*60000