我的C程序在内存中存储许多整数值,并读取它们并经常对其进行比较。类型unsigned char
的范围是足够的,但是我使用int
是因为速度对我来说比内存消耗重要得多,而且我认为CPU可以更快地处理int
。但这只是直觉的粗略猜测,我不确定。
答案 0 :(得分:5)
鉴于这些限制,您可能应该使用uint_fast8_t
,它通常会为您提供最快的无符号类型,该类型可以存储至少uint8_t
个值(其中uint8_t
通常为{ {1}},当然)。类型在C99和更高版本的<stdint.h>
中定义(并且必须定义unsigned char
,但不一定与uint_fast8_t
相同,并且uint8_t
不必是定义CPU是否不支持8位字节。
如果沿着这条路线走,您可能需要重新使用uint8_t
和printf()
函数系列的正确格式说明符。这些在<inttypes.h>
中定义。使用其他任何东西都会带来可移植性问题(至少在理论上如此)。