Die drei char-Typen

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Zeichenkonstanten (Übersicht) - Index

Konstanten, die aus einem einzigen Zeichen bestehen (beispielsweise 'A', '\t' und '\007'), werden als int 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 (hexadezimal: (=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);
 }

Siehe auch