【发布时间】:2016-04-08 10:51:51
【问题描述】:
C/C++ 标准常量中是否存在反映一个字节 (8) 中有多少位?类似于 CHAR_BIT 但用于字节的东西。
【问题讨论】:
-
这就是
CHAR_BIT告诉你的。一个字符就是一个字节。 -
我认为明智的做法是假设一个字节是 8 位。因为那样的话你的程序会在它不是的系统上崩溃:这是对使用此类系统的人的适当惩罚。
-
或使用
static_assert(8 == CHAR_BIT);只是移动就是等待发生的安全问题。 -
@Simple 虽然 C 标准没有定义字节是否必须是八位字节,但 POSIX 确实要求一个字节是八位字节,因此您不太可能遇到这种情况t true(不包括嵌入式,在某些情况下确实如此)。
-
@Brans Ds 一个字节不是 8位。一个八位字节是 8 位。一个字节也可以是 4 位或 16 位。