<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/

10-11 18:56