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.