A signed char
is a signed value which is typically smaller than, and is guaranteed not to be bigger than, a short
. An unsigned char
is an unsigned value which is typically smaller than, and is guaranteed not to be bigger than, a short
. A type char
without a signed
or unsigned
qualifier may behave as either a signed or unsigned char
; this is usually implementation-defined, but there are a couple of cases where it is not:
Part of the reason there are two dialects of "C" (those where char
is signed, and those where it is unsigned) is that there are some implementations where char
must be unsigned, and others where it must be signed.