根据 C++ 规范
一个字节至少足以包含基本执行字符集 (2.3) 的任何成员和 Unicode UTF-8 编码形式的八位代码单元,并且由连续的位序列组成,其数量为实现定义。
这意味着,一个字节中的位数必须是 8 位或多于 8 位。
现在,根据 gcc,位数由 ABI 确定。
4.4 字符
一个字节中的位数(C90 3.4、C99 和 C11 3.6)。
由 ABI 确定
GCC 基于 ABI - http://itanium-cxx-abi.github.io/cxx-abi/
任何人都可以指出我提到字节中位数的位置吗?
C ++标准(因此大多数编译器)仅有效地保证一个char是至少8点连续的位。对于任何特定编译,实际位数取决于目标 CPU 架构。
但是,在大多数情况下,您必须非常努力地找到没有 8 位字节的目标 CPU。
如果您必须编写依赖于 8 位字节假设的代码,那么您始终static_assert(CHAR_BIT == 8)可以防止任何违反您假设的编译。
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |