关于 cplusplus.com我看到的数据类型是什么atomic_int_fastN_t
和 atomic_int_leastN_t
其中 N 可以是 8、16、32 和 64。那么它们中 least 和 fast 一词的含义是什么,或者它们有何不同?即如何 atomic_int_fast64_t
不同于 atomic_int_least64_t
和 atomic<int64_t>
?
最佳答案
同样的原则适用于非原子类型定义:std::int_least64_t
、std::int_fast32_t
等
“最少n”类型是那些大小至少为 n 位的类型。如果实现不支持恰好 n 位的类型,则可能更多。
“快速n”类型是那些大小至少为 n 位的类型,并且使用它们不需要额外的操作处理器(即与它们一起工作很快)。
例如,在 32 位机器上,可能支持 16 位整数,但必须将它们提升为 32 位整数才能进行算术运算,并在计算完成后再次截断。在这样的机器上,std::int_least16_t
将是 16 位整数,但 std::int_fast16_t
将是 32 位整数,因为这是快速一起工作。
typedef std::int64_t
保证正好 64 位(并且只有在实现支持这样的整数时才会存在)。
关于c++ - atomic_int_fastN_t 和 atomic_int_leastN_t 类型之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34807415/