Wider Characters
Widecharacters in C are based on the wchar_tdata type, which is defined in severalheader files, including WCHAR.H, like so:
typedef unsigned short wchar_t ;
Thus,the wchar_tdata type is the same as an unsigned short integer: 16 bits wide.
To define avariable containing a single wide character, use the following statement:
wchar_t c = `A' ;
You can alsodefine an initialized pointer to a wide-character string:
wchar_t * p = L"Hello!" ;
Notice thecapital L (for long) immediately precedingthe first quotation mark. This indicates to thecompiler that the string is to be stored with wide characters—that is, withevery character occupying 2 bytes. The pointer variable prequires 4bytes of storage, as usual, but the character string requires 14 bytes—2 bytesfor each character with 2 bytes of zeros at the end.
Similarly,you can define an array of wide characters this way:
static wchar_t a[] =L"Hello!" ;
Although itlooks more like a typo than anything else, that Lpreceding the first quotation mark is very important, and there must not bespace between the two symbols. Only with that L will the compiler knowyou want the string to be stored with 2 bytes per character. Later on, when welook at wide-character strings in places other than variable definitions,you'll encounter the L preceding the first quotation mark again. Fortunately,the C compiler will often give you a warning or error message if you forget toinclude the L.