除非用户在文件或项目设置中明确提到,否则是否有任何C编译器将默认类型的char设为unsigned?
/卡努_
答案 0 :(得分:12)
[*]或者至少它已经过去了。据我所知,从那以后,linux已经在ARM上切换到了不同的默认ABI。
更新'2013: Android NDK的ARM编译器(gcc,clang)默认为unsigned char
。 x86和MIPS编译器默认为signed char
。
答案 1 :(得分:4)
标准要求标准所需的所有字符的整数值(AZ,az,0-9,基本标点符号等)为正,因此任何系统使用编码,其中这些字符的值超出范围signed char
必须将char
无格式。我相信这意味着所有EBCDIC系统都必须有一个未签名的普通char
,但我可能会弄错。
答案 2 :(得分:2)
通常有一个选项可以将其设置为默认值,但我的知识编译器不会这样做。