Você não está usando C ++. É opcional em um programa C ++ / CLI se a literal da cadeia contiver apenas caracteres ASCII. O compilador o converte automaticamente em uma sequência codificada utf-16 que é internada de qualquer maneira.
Hans Passant
7
@ Hans: "Você não está usando C ++" Como você sabe?
Lightness Races in Orbit
Respostas:
138
É um wchar_tliteral, para conjunto de caracteres estendidos. A Wikipedia tem uma pequena discussão sobre esse tópico e exemplos de c ++.
nota: não é necessariamente 16 bits. É específico do sistema operacional.
batman #
3
Eu acho que no linux wchar_t é de 32 bits
user10607
8
"No uso diário, você não precisa usar o wchar_t" é um julgamento arbitrário. Como um falante não nativo de inglês, posso dizer que devo usá-lo o tempo todo ...
Heyji 27/05/19
18
Isso significa que o texto é armazenado como wchar_tcaracteres, em vez de charcaracteres antigos simples .
(Eu originalmente disse que significava unicode. Eu estava errado sobre isso. Mas pode ser usado para unicode.)
L é um prefixo usado para strings amplas. Cada caractere usa vários bytes (dependendo do tamanho de wchar_t). A codificação usada é independente desse prefixo. Quero dizer, não deve ser necessariamente UTF-16, ao contrário do indicado em outras respostas aqui.
Respostas:
É um
wchar_t
literal, para conjunto de caracteres estendidos. A Wikipedia tem uma pequena discussão sobre esse tópico e exemplos de c ++.fonte
'L' significa
wchar_t
que, ao contrário de um caractere normal, requer 16 bits de armazenamento em vez de 8 bits. Aqui está um exemplo:A
wchar_t
é duas vezes maior que um caractere simples. No uso diário, você não precisa usar o wchar_t, mas se estiver usando o windows.h, precisará.fonte
Isso significa que o texto é armazenado como
wchar_t
caracteres, em vez dechar
caracteres antigos simples .(Eu originalmente disse que significava unicode. Eu estava errado sobre isso. Mas pode ser usado para unicode.)
fonte
Isso significa que é um personagem amplo,
wchar_t
,.Semelhante a
1L
ser um valor longo.fonte
Isso significa que é uma matriz de caracteres largos (
wchar_t
) em vez de caracteres estreitos (char
).É apenas uma sequência de caracteres diferentes, não necessariamente uma sequência Unicode .
fonte
L é um prefixo usado para strings amplas. Cada caractere usa vários bytes (dependendo do tamanho de
wchar_t
). A codificação usada é independente desse prefixo. Quero dizer, não deve ser necessariamente UTF-16, ao contrário do indicado em outras respostas aqui.fonte