在16位微处理器上,我应该使用数据类型short而不是int吗?

O_O*_*O_O 4 c int types short char

我已经读过使用shortvs int实际上为编译器创建了一个低效率,因为它需要使用int数据类型,而不管C整数提升.对16位微处理器来说这是真的吗?

另一个问题:如果我有一个1和0的数组,使用它uint8_tunsigned char16位微处理器是否最有效?或者它仍然存在转换回int的问题.

请帮我澄清这个泥泞的问题.谢谢!

Chr*_*utz 5

  1. 这真的是一个问题吗?在大多数16个系统,我听说过,intshort最终被相同的尺寸(16位),所以不应该真正在实践中的差异.

  2. 如果uint8_t存在于系统中,它将成为同义词unsigned char.unsigned char将是系统上最小的无符号类型.如果它超过8位,则不会uint8_t.如果它小于8位,那么它违反了标准.没有效率差异,因为必须根据另一个来定义.

最后,你真的需要担心这些微观差异吗?如果你这样做,你需要查看装配输出或(更可能)配置文件,看看哪个更快.