5.13 Der Breitzeichen-Typ »wchar_t«
Ganz klar: Für die Zeichensätze mancher Sprachen wie beispielsweise der chinesischen mit über tausend Zeichen ist der Datentyp char zu klein. Für die Darstellung beliebiger landesspezifischer Zeichensätze kann daher der Breitzeichen-Typ wchar_t (wide char = breite Zeichen) aus der Headerdatei <stddef.h> verwendet werden. Der Datentyp wchar_t ist wie char und int ein integraler Datentyp und hat eine Größe von 2 Bytes (ist aber zunehmend auch mit 4 Bytes zu finden), womit natürlich erheblich mehr Zeichen aufgenommen werden können. Bei der Deklaration eines solchen Zeichens muss vor den einzelnen Anführungszeichen noch das Präfix L gestellt werden:
wchar_t ch = L'Z';
Entsprechend wird auch beim Formatzeichen für die Ausgabe oder Eingabe eines wchar_t ein l vor dem c verwendet (%lc):
print("%lc", ch);
Das folgende Beispiel soll Ihnen zeigen, wie Sie wchar_t in der Praxis verwenden können:
/* widechar.c */ #include <stdio.h> #include <stddef.h> int main(void) { wchar_t ch1=L'Z'; wchar_t ch2; printf("Bitte ein Zeichen eingeben: "); scanf("%lc", &ch2); printf("%lc %lc\n", ch1, ch2); printf("wchar_t: %d Bytes\n", sizeof(wchar_t)); return 0; }
Die Größe von wchar_t lässt sich hierbei nicht exakt beschreiben (meistens 2 oder 4 Bytes). Es lässt sich lediglich mit Sicherheit sagen, dass wchar_t mindestens so groß wie char und höchstens so groß wie long ist. wchar_t muss auf jeden Fall mindestens so groß sein, um alle Werte des größten unterstützten Zeichensatzes aufnehmen zu können.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.