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
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…