Die drei char-Typen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Zeichenkonstanten (Übersicht) - Index

Konstanten, die aus einem einzigen Zeichen bestehen (beispielsweise 'A', '\t' oder '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 Compiler Zeichendeklarationen als signed. Mit der Compiler-Option -K können Sie Zeichendeklarationen als unsigned 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 unterschiedlich und gültig:

void func(char ch);
void func(signed char ch);
void func(unsigned char ch);

Wenn nur einer der oben genannten 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