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 = = 8 或 CHAR_BIT == 32。您甚至可以在一个应用程序中 mix'n'match 这两种模式。虽然我一般不建议将其用于开发,但我发现它在移植代码时很有用。
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 = = 8 或 CHAR_BIT == 32。您甚至可以在一个应用程序中 mix'n'match 这两种模式。虽然我一般不建议将其用于开发,但我发现它在移植代码时很有用。