任何将’char’作为’unsigned’的编译器?

除非用户在文件或项目设置中明确提到,否则是否有任何C编译器将默认类型的char作为unsigned?

/ Kanu_

海湾合作委员会。 但只有在编译无符号字符的平台时,包括ARM linux [*]。 当GCC编译为x86时,缺省值是对char进行签名。

[*]或者至少它已经过去了。 据我所知,linux已经在ARM上切换到了不同的默认ABI。

更新’2013: Android NDK的ARM编译器(gcc,clang)默认为unsigned char 。 x86和MIPS编译器默认使用signed char

该标准要求标准所需的所有字符的整数值(AZ,az,0-9,基本标点符号等)为正,因此任何系统使用编码,其中这些字符的值超出了signed char的范围必须有普通char未签名。 我相信这意味着所有EBCDIC系统都必须有一个未签名的普通char ,但我可能会弄错。

通常有一个选项可以将其设置为默认值,但我的知识编译器没有这样做。