整数还是字符?哪个更快?

时间:2019-03-30 05:43:07

标签: c performance

我的C程序在内存中存储许多整数值,并读取它们并经常对其进行比较。类型unsigned char的范围是足够的,但是我使用int是因为速度对我来说比内存消耗重要得多,而且我认为CPU可以更快地处理int。但这只是直觉的粗略猜测,我不确定。

1 个答案:

答案 0 :(得分:5)

鉴于这些限制,您可能应该使用uint_fast8_t,它通常会为您提供最快的无符号类型,该类型可以存储至少uint8_t个值(其中uint8_t通常为{ {1}},当然)。类型在C99和更高版本的<stdint.h>中定义(并且必须定义unsigned char,但不一定与uint_fast8_t相同,并且uint8_t不必是定义CPU是否不支持8位字节。

如果沿着这条路线走,您可能需要重新使用uint8_tprintf()函数系列的正确格式说明符。这些在<inttypes.h>中定义。使用其他任何东西都会带来可移植性问题(至少在理论上如此)。