【发布时间】:2013-10-06 21:08:16
【问题描述】:
我在Benefit of using short instead of int in for... loop 读到,在循环计数器中使用 short 而不是普通的 int 并没有什么意义,因为在大多数架构中,short 将占用与 int 相同数量的内存空间。这让我认为短整数真的没有用,因为它们不会导致人们可能期望的结果,即节省内存。但是,在生产代码中,我经常看到短整数用作函数参数。例如,当我使用 ack-grep 浏览 coreboot (coreboot.org) 时,我发现许多功能都很短。我意识到 coreboot 代码相当低级,但我想知道在 x86 架构的 C 中使用 short 而不是 int 有什么好处(如果有的话)?我应该什么时候使用它?
【问题讨论】:
-
使用
short的最大好处在于它们被聚合使用——在shortIOW 的数组中——因为该数组占用了@987654324 数组的一半空间@。另一个可能的好处是,如果函数被定义为采用short,您知道该值将在 -32768..+32767 范围内(在具有 2 的补码整数和 16 位short的系统上,是大多数系统),这可以简化您在函数内部的验证过程。否则,short类型的变量不会有太大帮助,除非您匹配某种外部规范。 -
@JonathanLeffler 为什么不回答这个问题?
-
通过“验证过程” - 你的意思是检查溢出吗?做空如何让这更容易?