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