根据 C 和 C++ 标准,
在什么样的系统上可以合法地将
CHAR_BIT >= 8
。
但是当 CHAR_BIT > 8
时,uint8_t
甚至不能表示为 8 位。
它必须更大,因为 CHAR_BIT
是系统上任何数据类型的最小位数。在什么样的系统上可以合法地将
uint8_t
定义为与 unsigned char
不同的类型?
(如果 C 和 C++ 的答案不同,那么我想知道两者的答案。)
char
都必须让它们的表示位参与确定它们的值。 - user541686uint8_t
,其中8位是真实的,另外8位是填充的。不过如果有人制造出这样的环境,我会开枪打他的 :) - Mysticialtypedef signed integer type int8_t; // optional
- Rapptzuint8_t
根本不应该存在。 - Mike Seymour