“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位数据?
如果我必须存储少量的字符,将它们存储为整数是不是更快?
在任何现代的,实用的机器上, char
, int
和long
都会很快(可能同样快)。 short
是快还是不快在cpu架构和单个架构内的不同cpu模型之间有所不同。
话虽如此,无论速度如何,单个变量都使用小型是没有充分理由的。 他们的语义令人困惑(由于默认促销为int
),他们不会为你节省大量空间(甚至可能没有任何空间)。 我唯一一次使用char
, short
, int8_t
, int16_t
等是在数组或结构中必须匹配固定的二进制布局,你将拥有这么多(例如像素或音频样本)的大小每一个都很重要。
它取决于指令集和编译器中的操作。