我观察到访问char数组中的数据项所花费的时间比访问int数组中的数据项少得多。我猜这是因为int的大小大于chars的大小,因为"内存控制器" (控制记忆的东西,我不知道技术术语)必须移动更大的距离。
uint8_t char和int8_t具有相同的大小。因此,将数据存储在哪种数据类型的数组中将提供最快的访问时间。?
我创建了一个程序,用于在250000桶大小的哈希表中存储150000个单词。当哈希表数组的数据类型为int时,加载时间为.16秒,但是当数据类型为char或uint8或int8时,加载时间在.08到.11秒之间变化。所以我的测试没有结果
答案 0 :(得分:1)
对此没有一般性的答案。
它100%取决于您的硬件,编译器,操作系统,电源电压和月相。至少其中一些。
C没有指定该级别的内容。
在具有字节可寻址存储器的典型(现代)计算机上,char
将为8位(“一个字节”)。这意味着uint8_t
将成为unsigned char
的别名,int8_t
将成为signed char
。
因此,uint8_t
,int8_t
和char
的访问时间将相同,因为它们基本上只是具有不同符号语义的相同类型。