首页 > 解决方案 > 整数还是字符?哪个更快?

问题描述

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

标签: cperformance

解决方案


鉴于这些约束,您可能应该使用uint_fast8_twhich 为您提供通常最快的无符号类型,该类型至少能够存储uint8_t值(当然,uint8_t通常unsigned char是 )。类型<stdint.h>在C99及以后定义(uint_fast8_t需要定义,但不一定相同uint8_tuint8_t如果CPU不支持8位字节则不需要定义)。

如果您沿着这条路线走,您可能需要重新了解函数printf()scanf()函数族的正确格式说明符。这些定义在<inttypes.h>. 使用其他任何东西都充满了可移植性问题(至少在理论上)。


推荐阅读