character in C

Type | Storage size | Value range
--- | --- | --- 
char | implementation-defined, usually 1 byte |  -2<sup>7</sup> to 2<sup>7</sup>-1 or 0 to 2<sup>8</sup>-1 
unsigned char | implementation-defined, usually 1 byte | 0 to 2<sup>8</sup>-1
signed char | implementation-defined, usually 1 byte | -2<sup>7</sup> to 2<sup>7</sup>-1

Notes:
* variable declared as characters (char) shall be large enough to store any member of the implementation basic character set. A char, a signed char, and an unsigned char occupy the same amount of storage.
* Plain char, signed char, and unsigned char are three distinct types. It is implementation-defined whether a char object can hold negative values. The C standards allows the character type char to be signed or unsigned, depending on the platform and compiler. Most systems, including x86 GNU/Linux and Microsoft Windows, use signed char, but those based on PowerPC and ARM processors typically use unsigned char.