String literals are used to specify arrays of characters. They are sequences of characters enclosed within double quotes (e.g. "abcd"
and have the type char*
).
The L
prefix makes the literal a wide character array, of type wchar_t*
. For example, L"abcd"
.
Since C11, there are other encoding prefixes, similar to L
:
prefix | base type | encoding |
---|---|---|
none | char | platform dependent |
L | wchar_t | platform dependent |
u8 | char | UTF-8 |
u | char16_t | usually UTF-16 |
U | char32_t | usually UTF-32 |
For the latter two, it can be queried with feature test macros if the encoding is effectively the corresponding UTF encoding.