开启cplusplus.com我看到的数据类型atomic_int_fastN_t
和atomic_int_leastN_t
,其中N可能是8,16,32和64.那么“最小和快速”字的含义是什么他们或他们有何不同?即atomic_int_fast64_t
与atomic_int_least64_t
和atomic<int64_t>
的不同之处?
答案 0 :(得分:4)
同样的原则适用于非原子类型的定义:std::int_least64_t
,std::int_fast32_t
等。
“最少 n ”类型是那些大小至少为 n 位的类型。如果实现不支持一种完全 n 位的话,可能会更多。
“fast n ”类型的大小至少为 n 位,和使用它们不需要额外的操作处理器(即使用它们很快)。
例如,在32位机器上,可能支持16位整数,但必须将它们提升为32位整数进行算术运算,并在计算完成后再次截断。在这样的机器上,std::int_least16_t
将是16位整数,但std::int_fast16_t
将是32位整数,因为这是快速使用的。
然后,typedef std::int64_t
保证完全 64位(并且只有在实现支持这样的整数时才存在)。