是使用无符号整数溢出的好习惯吗?

use*_*147 19 c c++

我前几天正在阅读C标准,并注意到与有符号整数溢出(未定义)不同,无符号整数溢出是明确定义的.我已经看到它在很多代码中用于最大化等等但是考虑到有关溢出的voodo,这被认为是很好的编程习惯吗?无论如何不安全吗?我知道许多像Python这样的现代语言都不支持它 - 相反,它们继续扩展大数字的大小.

小智 20

无符号整数溢出(以环绕的形式)通常在散列函数中得到利用,并且从年开始就是点.


And*_*son 5

简而言之:

只要您注意并遵守定义(无论出于何种目的 - 优化、超级聪明的算法等),使用您认为合适的无符号整数溢出是完全合法/可以/安全的。