是CHAR_BIT吗? 8?

时间:2015-08-19 09:46:38

标签: c char byte bit

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

POSIX强制CHAR_BIT等于8,并且(几乎?)使用八位字节的所有网络和通信标准,是否有任何当代C实现CHAR_BIT> 8?

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

3 个答案:

答案 0 :(得分:14)

来自德州仪器(TI)的

TMS320C28x DSP具有16位的字节。

编译器的

DocumentationCHAR_BIT指定为第101页的16。

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

答案 1 :(得分:9)

另一个例子是ADI公司' SHARC processor family。 其C实现CrossCore Embedded Studio具有CHAR_BIT == 32claims,以提供独立的C99和C ++ 11一致性。

答案 2 :(得分:1)

ADI公司'已经提到了SHARC DSP(CHAR_BIT == 32)。让我补充一点,最近的 SHARC + 核心(我使用ADSP-SC589和CCES工具链)可以运行以两种模式编写的应用程序: CHAR_BIT == 8 CHAR_BIT == 32 即可。您甚至可以在一个应用中将两种模式混合组合在一起。虽然我不建议将其用于开发,但我发现它在移植代码时很有用。