POSIX 在定义 3.84[1] 中规定一个字节“恰好是一个八位字节”(8 位)。这是否可以安全地假设
char
在所有 Linux 和 FreeBSD 系统上(至少)都是 8 位?
我对 POSIX 是什么以及它试图实现的目标有一些了解,但我不知道 Linux 和 *BSD 系统“必须”在多大程度上符合它。例如,Linux CLI 工具经常执行不属于其 POSIX 规范的操作(尽管它可能始终是超集,因此 POSIX 规范中的任何内容仍然适用)。
[1] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_87
编辑:我很清楚 C 标准不保证 8 位字节。我具体询问 POSIX 强制要求是否意味着“8 位字节”在 Linux 和 FreeBSD 上是一个安全的假设。
来自 https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html :
{CHAR_BIT}
Number of bits in a type char.
[CX] [Option Start] Value: 8 [Option End]
POSIX 规范规定 char 有 8 位,是的。