我想更好地理解为什么选择int
over unsigned
?
就个人而言,除非有正当理由,否则我从不喜欢带符号的值。例如数组中的项目数,或字符串的长度,或内存块的大小等,所以这些东西通常不可能是负数。这样的值没有可能的意义。int
当它在所有这些情况下都具有误导性时,为什么更喜欢它呢?
int
我问这个是因为 Bjarne Stroustrup 和 Chandler Carruth 都给出了更喜欢unsigned
这里的建议(大约 12:30')。
我可以看到使用int
overshort
或long
-的论点int
是目标机器架构的“最自然”数据宽度。
但是签过未签一直让我很恼火。在典型的现代 CPU 架构上,有符号值真的更快吗?是什么让他们变得更好?