问题:
是否存在std::uint8_t
存在的c ++工具链,但 是unsigned char
(或char
的typedef,如果它是无符号的)?
编辑: 相反:在符合标准的实施中,这样的事情是否可行?
背景/动机:
我主要是因为我想知道std::uint8_t*
是否可以移植来访问单个字节(就像unsigned char*
)。是的,我知道std::byte
,但这与此无关。我主要对x86,arm和mips的工具链感兴趣,但出于好奇,我也想听听其他的例子。
答案 0 :(得分:1)
char
不是无符号整数类型,即使它实际上是无符号的。由于uint8_t
必须是无符号整数类型,因此它永远不能是char
。CHAR_BIT
必须至少为8,而下一个最小的标准无符号整数类型unsigned short
必须至少为16位。如果uint8_t
存在,则它必须是"无符号整数类型,宽度为8且没有填充位。"如果uint8_t
表示标准无符号整数类型,那么它只能是unsigned char
。uint8_t
表示实现定义的扩展无符号整数类型。但是,我不知道任何执行此操作的实现。