CHAR_BIT 曾经 > 8 吗?

Is CHAR_BIT ever > 8?

ISO C 标准要求 CHAR_BIT 至少为 8。

POSIX 要求 CHAR_BIT 等于 8,并且(几乎?)所有网络和通信标准都使用 八位字节 ,是否有 any 当代 C 实现 where CHAR_BIT > 8?

(注意:我对使用 18 位或 36 位字的历史计算机体系结构不感兴趣。这确实是一个关于 C 的问题,因为它今天在当前硬件上使用;考虑具有 C99 或更高版本实现的系统)。

TMS320C28x Texas Instruments 的 DSP 有一个 16 位的字节。

编译器的

Documentation 在第 101 页将 CHAR_BIT 指定为 16。

这似乎是一个现代处理器(目前正在销售),编译器支持 C99 和 C++03。

另一个例子是 Analog Devices 的 SHARC processor family。 它的 C 实现,CrossCore Embedded Studio, has CHAR_BIT == 32 and claims 提供独立的 C99 和 C++11 一致性。

Analog Devices 的 SHARC DSP 已被提及 (CHAR_BIT==32)。让我补充一点,最近的 SHARC+ 内核(我使用 ADSP-SC589 和 CCES 工具链)可以 运行 以两种模式编写的应用程序:CHAR_BIT = = 8CHAR_BIT == 32。您甚至可以在一个应用程序中 mix'n'match 这两种模式。虽然我一般不建议将其用于开发,但我发现它在移植代码时很有用。