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); }