uint8_t , uint16_t 保证分别是8位和16位吗?
Are uint8_t , uint16_t guaranteed to be of the 8 and 16 bits respectively?
我进行了模拟,希望降低内存成本,因此对 class 成员使用 uint8_t
、 uint16_t
。 cpp 是否保证它们是 8 位和 16 位的?
是否存在我应该注意的基于流程架构的差异?
这些数据类型保证具有指定的大小。否则他们将毫无意义。请参阅 http://en.cppreference.com/w/cpp/types/integer 以供参考。
是的,它们保证与名称中的尺寸完全一致。或者根本不存在。
不,这些数据类型不能保证是 8 位或 16 位。 如果存在,则保证是8位或16位,但不是必须存在
对于您的情况,请使用 uint_least8_t
和 uint_least16_t
。这些是必须存在的,并且将是至少具有该位数的最小类型。
我进行了模拟,希望降低内存成本,因此对 class 成员使用 uint8_t
、 uint16_t
。 cpp 是否保证它们是 8 位和 16 位的?
是否存在我应该注意的基于流程架构的差异?
这些数据类型保证具有指定的大小。否则他们将毫无意义。请参阅 http://en.cppreference.com/w/cpp/types/integer 以供参考。
是的,它们保证与名称中的尺寸完全一致。或者根本不存在。
不,这些数据类型不能保证是 8 位或 16 位。 如果存在,则保证是8位或16位,但不是必须存在
对于您的情况,请使用 uint_least8_t
和 uint_least16_t
。这些是必须存在的,并且将是至少具有该位数的最小类型。