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