Wide-Character- und Mehr-Zeichenkonstanten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Zeichenkonstanten (Übersicht) - Index


"Wide-Character"-Literale

"Wide-Character"-Typen können zur Darstellung eines Zeichens verwendet werden, das nicht in den für einen char-Typ reservierten Speicherplatz passt. Ein Wide-Character benötigt einen Speicherplatz von zwei Byte.

Eine Zeichenkonstante, der ein L unmittelbar vorangeht, ist eine Wide-Character-Konstante vom Datentyp wchar_t (in stddef.h definiert). Zum Beispiel:

wchar_t ch = L'A';

Falls wchar_t in einem C-Programm verwendet wird, stellt es einen in der Header-Datei stddef.h definierten Typ dar. In einem C++ Programm ist wchar_t ein Schlüsselwort zur Darstellung unterschiedlicher Codes beliebiger Elemente der erweiterten landesspezifischen Zeichensätze. In C++Builder ist wchar_t bezüglich Größe, Vorzeichen und Ausrichtung identisch mit dem Typ unsigned short.

Ein String, dem ein L unmittelbar vorangeht, ist ein Wide-Character-String. Die Speicherzuweisung für einen String liegt bei zwei Byte pro Zeichen. Zum Beispiel:

wchar_t *str = L"ABCD";

Unicode-Literale in C++11

Die C++11-Erweiterung stellt zwei neue Zeichentypen, char16_t und char32_t, bereit. Diese Typen können Unicode-Zeichen darstellen. char16_t und char32_t sind in C++11 Schlüsselwörter. char16_t definiert einen 16 Bit großen Zeichentyp, mit dem in UTF-16 codierte Unicode-Zeichen dargestellt werden. char32_t definiert einen 32 Bit großen Zeichentyp, mit dem in UTF-32 codierte Zeichen dargestellt werden.

Sie können die folgenden neuen Formate der in UTF-16 und UTF-32 codierten Literale verwenden:

  • Eine Zeichenkonstante, der u unmittelbar vorangeht, ist das in UTF-16 codierte Unicode-Zeichen des Datentyps char16_t.
  • Eine Zeichenkonstante, der U unmittelbar vorangeht, ist das in UTF-32 codierte Zeichen des Datentyps char32_t.
  • Ein String-Literal, dem u unmittelbar vorangeht, enthält in UTF-16 codierte Unicode-Zeichen des Datentyps char16_t.
  • Ein String-Literal, dem U unmittelbar vorangeht, enthält in UTF-32 codierte Zeichen des Datentyps char32_t.

Multizeichenkonstanten

Der Compiler unterstützt auch Multizeichenkonstanten. Multizeichenkonstanten können bis zu vier Zeichen umfassen. So ist zum Beispiel die Konstante '\006\007\008\009' nur in einem C++Builder-Programm gültig. Multizeichenkonstanten sind immer 32 Bit große int-Werte. Die Konstanten sind deshalb nicht portabel zu anderen C++-Compilern.

Siehe auch