Any compiler which takes 'char' as 'unsigned' ?

老子叫甜甜 提交于 2019-12-19 07:55:27

问题


Is there any C compiler which takes the default type of char as unsigned unless explicitly mentioned by the user in the file or project settings?

/Kanu_


回答1:


GCC does. But only when compiling for platforms where an unsigned char is the convention, including ARM linux[*]. When GCC compiles for x86, the default is for char to be signed.

[*] Or at least it has been in the past. For all I know linux has switched to a different default ABI on ARM since.

Update '2013: ARM compilers (gcc, clang) for Android NDK default to unsigned char. The x86 and MIPS compilers default to signed char.




回答2:


The standard requires that the integer value of all characters required by the standard (A-Z, a-z, 0-9, basic punctuation, etc.) be positive, so any system using an encoding where these characters' values are outside the range of signed char must have plain char be unsigned. I believe this means all EBCDIC systems must have a plain char that's unsigned, but I may be mistaken.




回答3:


There is usually an option to set it as default, but no compiler of my knowledge does that.



来源:https://stackoverflow.com/questions/3728045/any-compiler-which-takes-char-as-unsigned

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!