GCC does does. Pero solo cuando se compila para plataformas donde la convención es un char sin signo, incluido ARM linux [*]. Cuando GCC compila para x86, el valor predeterminado es para que se firme la char.
[*] O al menos lo ha sido en el pasado. Por lo que sé, Linux ha cambiado a un ABI predeterminado diferente en ARM desde entonces.
Actualización '2013: compiladores ARM (gcc, clang) para Android NDK por defecto a unsigned char
. Los compiladores x86 y MIPS están predeterminados en signed char
.
Hay. En MSVC, utiliza ['/ J' (el tipo de carácter predeterminado no está firmado)] (https://msdn.microsoft.com/en-us/library/0d294k5z.aspx). En GCC, utiliza ['-funsigned-char'] (http://stackoverflow.com/a/20518559/995714) –