8.3.1 Signed and Unsigned Character Types

Each implementation must define whether a plain char is signed or unsigned. For PIC32C, and all other ARM platforms, a plain char defaults to be unsigned. Note that this behavior differs from PIC32M. The options -funsigned-char and -fsigned-char can always be used to alter the default type for a given translation unit.