4.3.7 Plain char
Types
The type of a plain char
is unsigned
char
. It is generally recommended that all definitions for the
char
type explicitly state the signedness of the object.
Example
The following example
char foobar;
defines an unsigned char
object called
foobar
.
Differences
The 8-bit compilers have always treated plain char
as an
unsigned type.
The 16- and 32-bit compilers used signed char
as the
default plain char
type. The -funsigned-char
option on
those compilers changed the default type to be unsigned char
.
Migration to the CCI
Any definition of an object defined as a plain char
and
using the 16- or 32-bit compilers needs review. Any plain char
that was
intended to be a signed quantity should be replaced with an explicit definition, for
example.
signed char foobar;
You can use the -funsigned-char
option on MPLAB XC16 and
XC32 to change the type of plain char
, but since this option is not
supported on MPLAB XC8, the code is not strictly conforming.