<cstdint>
(<stdint.h>
) header 定义了几种整数类型,它们的名称遵循以下模式:intN_t
,其中N
是位数,而不是字节数。
鉴于未严格定义字节的长度为8位,为什么不将这些类型定义为int1_t
而不是int8_t
?因为考虑到字节长度异常的机器,这是否更合适?
最佳答案
在大小不完全相同的计算机上,未定义类型。也就是说,如果您的计算机没有8位字节,那么int8_t
将不可用。但是,您仍然拥有最少的可用版本,例如int_least16_t
。
一个让人怀疑的原因是,如果您想要一个精确的大小,通常就需要一个位大小,而不是真正的抽象字节大小。例如,所有互联网协议(protocol)都处理一个8位字节,因此,无论是否是 native 字节大小,您都希望拥有8位。
This answer在这方面也非常有用。
关于c++ - `<cstdint>`中使用的命名约定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9758269/