Wide-Character- und Mehr-Zeichenkonstanten
Nach oben zu Zeichenkonstanten (Übersicht) - Index
Inhaltsverzeichnis
"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.