std :: uint8_t的底层类型

Mik*_*eMB 8 c++ standard-library

问题:
是否存在任何c ++工具链,std::uint8_t不是unsigned char(或者char,如果它是无符号的)的typedef ?

编辑:相反:在符合标准的实施中,这样的事情是否可能?

背景/动机:
我主要是因为我想知道是否std::uint8_t*可以移植来访问单个字节(就像unsigned char*).是的,我知道std::byte,但这不相关.我主要对x86,arm和mips的工具链感兴趣,但出于好奇,我也想听听其他的例子.

T.C*_*.C. 1

  1. char不是无符号整数类型,即使它实际上是无符号的。由于uint8_t必须是无符号整数类型,因此它永远不可能是char
  2. CHAR_BIT必须至少为 8 位,而下一个最小的标准无符号整数类型unsigned short必须至少有 16 位。如果uint8_t存在,则它必须是“宽度为 8 且无填充位的无符号整数类型”。如果uint8_t表示标准无符号整数类型,那么它只能是unsigned char
  3. 但是,措辞中没有任何内容阻止uint8_t表示实现定义的扩展无符号整数类型。然而,我不知道有任何实现可以做到这一点。