所以 typedef
:ed 原始数据类型的原因是抽象低级表示并使其更容易理解 (uint64_t
而不是 long long
类型,即 8 个字节)。
但是,有 uint_fast32_t
与 uint32_t
具有相同的 typedef
。使用“快速”版本会使程序更快吗?
最佳答案
int
在某些平台上可能只有 16 位。这可能不足以满足您的应用需求。uint32_t
不保证存在。它是一个可选的typedef
,如果它具有正好 32 位的无符号整数类型,则实现必须提供它。例如,有些有 9 位字节,因此它们没有uint32_t
。uint_fast32_t
清楚地说明了您的意图:它是一种至少 32 位的类型,从性能的角度来看是最好的。uint_fast32_t
实际上可能是 64 位长。这取决于实现。- 还有
uint_least32_t
。它指定至少 32 位长的 最小 类型,因此它可以小于uint_fast32_t
。如果平台不支持后者,它是uint32_t
的替代方案。
... there is
uint_fast32_t
which has the same typedef asuint32_t
...
你看到的不是标准。这是一个特定的实现(黑莓)。所以你不能从那里推断出 uint_fast32_t
总是与 uint32_t
相同。
另见:
关于c++ - 什么是 uint_fast32_t,为什么要使用它来代替常规的 int 和 uint32_t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500677/