< cstdint> (< stdint.h>)标头定义了几种整数类型,它们的名称遵循以下模式:intN_t,其中N是位数,而不是字节数.
鉴于字节未严格定义为8位长度,为什么这些类型不能定义为例如int1_t而不是int8_t?这不是更合适,因为它考虑了具有不寻常长度字节的机器吗?
解决方法
在没有这些尺寸的机器上,未定义类型.也就是说,如果您的机器没有8位字节,则int8_t将不可用.但是,您仍然可以使用最少的版本,例如int_least16_t.
人们怀疑的原因是,如果你想要一个精确的大小,你通常需要一个比特大小,而不是一个抽象的字节大小.例如,所有互联网协议都处理8位字节,因此您需要具有8位,无论是否为本机字节大小.
This answer在这方面也非常有用.