【发布时间】:2017-11-24 22:12:50
【问题描述】:
问题:
是否有任何 c++ 工具链,其中存在 std::uint8_t,但 not 是 unsigned char(或 char,如果未签名)的 typedef?
编辑: 相反:在符合标准的实施中,这样的事情是否可能?
背景/动机:
我主要是问,因为我想知道std::uint8_t* 是否可用于访问单个字节(就像unsigned char*)。是的,我知道std::byte,但这与这里无关。我主要对 x86、arm 和 mips 的工具链感兴趣,但出于好奇,我也想听听其他示例。
【问题讨论】:
-
有些 DSP 没有八位字节 - 通常,它们只能访问更大字长的内存 - 所以你可能有 16 位
char而没有uint8_tat全部。编辑:但重新阅读您的问题,我发现您已经排除了这种情况(您需要uint8_t)。 -
这 twitter convo 和 gcc bug report comment 可能会有所帮助,具体取决于上下文
-
你为什么不直接使用
unsigned char*来便携地访问单个字节? -
@Brian:因为它更短;)。主要是因为我正在从事的项目就是这样做的。
-
另外 - 虽然仍然不理想 - 我确实认为这个名称更适合谈论 classig 8 位字节(我怀疑在
CHAR_BIT != 8的机器上使用我的代码是否安全)跨度>
标签: c++ standard-library