Die drei char-Typen
Nach oben zu Zeichenkonstanten (Übersicht) - Index
Konstanten, die aus einem einzigen Zeichen bestehen (beispielsweise 'A', '\t' und '\007'), werden als int-Werte dargestellt. In diesem Fall gilt das niederwertige Bit als vorzeichenbehaftet, das heißt, wenn der Wert größer ist als 127 (Basis 10), wird das höherwertige Bit auf -1 (=0xFF) gesetzt. Diese Automatik kann ausgeschaltet werden, indem man als standardmäßigen char-Typ unsigned char wählt.
Die drei Zeichentypen char, signed char und unsigned char erfordern einen 8-Bit-Speicher (ein Byte). Per Voreinstellung behandelt der Comiler Zeichendeklarationen als mit Vorzeichen behaftet. Mit der Compiler-Option -K können Sie Zeichendeklarationen wie ohne Vorzeichen behandeln. Das Verhalten von C-Programmen bleibt durch die Unterscheidung zwischen diesen drei Zeichentypen unberührt.
In einem C++ Programm kann eine Funktion mit Argumenten vom Typ char, signed char oder unsigned char überladen werden. Die folgenden Funktionsprototypen sind zum Beispiel gültig und verschieden.
void func(char ch); void func(signed char ch); void func(unsigned char ch);
Wenn nur einer der oberen Prototypen existiert, wird er jeden der drei Zeichentypen akzeptieren. Das Folgende ist zum Beispiel möglich:
void func(unsigned char ch);
void main(void)
{
signed char ch = 'x';
func(ch);
}