开发者

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

开发者 https://www.devze.com 2023-01-16 05:19 出处:网络
Is there any C compiler which takes the default type of char as unsigned unless explicitly mentioned b开发者_开发问答y the user in the file or project settings?

Is there any C compiler which takes the default type of char as unsigned unless explicitly mentioned b开发者_开发问答y the user in the file or project settings?

/Kanu_


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.


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.


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

0

精彩评论

暂无评论...
验证码 换一张
取 消