gpt4 book ai didi

c++ - std::uint8_t 的底层类型

转载 作者:可可西里 更新时间:2023-11-01 17:59:10 25 4
gpt4 key购买 nike

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

编辑:相反:在符合标准的实现中这样的事情甚至可能吗?

背景/动机:
我问的主要是因为我想知道 std::uint8_t* 是否可以移植地用于访问单个字节(就像 unsigned char* 一样)。是的,我知道 std::byte,但这与此处无关。我主要对 x86、arm 和 mips 的工具链感兴趣,但出于好奇,我也想听听其他示例。

最佳答案

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

关于c++ - std::uint8_t 的底层类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44685718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com