我想更好地理解为什么选择 int
而不是 unsigned
?
就我个人而言,我从来不喜欢有符号的值,除非有合理的理由。例如数组中的项的计数、字符串的长度或内存块的大小等,所以这些东西通常不可能是负数。这样的价值没有任何可能的意义。既然 int
在所有这些情况下都具有误导性,为什么还要选择它呢?
我之所以这样问,是因为比雅尼·斯特劳斯特鲁普和钱德勒•卡鲁斯都建议人们更喜欢 int
而不是 unsigned
。
我可以看到在 short
或 long
上使用 int
的参数-int
是目标机器体系结构的“最自然”数据宽度。
但是签字转让不签字一直让我很恼火。在典型的现代 CPU 体系结构中,有符号值真的更快吗?是什么让他们变得更好?