“char”和“small int”比“int”慢吗?

可能重复:
内置类型的性能:char vs short vs int vs. float vs. double

你好。 假设您有32位处理器。 8位char和16位short int类型是否比本机32位int慢? 那么使用64位long long int呢?

默认情况下硬件是否支持此数据类型,或者通过使用其他指令将它们全部转换为32位数据?

如果我必须存储少量的字符,将它们存储为整数是不是更快?

在任何现代的,实用的机器上, charintlong都会很快(可能同样快)。 short是快还是不快在cpu架构和单个架构内的不同cpu模型之间有所不同。

话虽如此,无论速度如何,单个变量都使用小型是没有充分理由的。 他们的语义令人困惑(由于默认促销为int ),他们不会为你节省大量空间(甚至可能没有任何空间)。 我唯一一次使用charshortint8_tint16_t等是在数组或结构中必须匹配固定的二进制布局,你将拥有这么多(例如像素或音频样本)的大小每一个都很重要。

它取决于指令集和编译器中的操作。