Вы не используете C ++. Это необязательно в программе на C ++ / CLI, если строковый литерал содержит только символы ASCII. Компилятор автоматически преобразует ее в строку в кодировке utf-16, которая интернируется в любом случае.
Ганс Пассант,
7
@ Ханс: «Вы не используете C ++» Как вы знаете?
Гонки
Ответы:
138
Это wchar_tбуквальный, для расширенного набора символов. В Википедии есть небольшая дискуссия на эту тему и примеры c ++.
«L» означает wchar_t, что, в отличие от обычного символа, требуется 16-битная память, а не 8-битная. Вот пример:
"A"=41"ABC"=414243
L"A"=0041
L"ABC"=004100420043
А wchar_tв два раза больше простого символа. При ежедневном использовании вам не нужно использовать wchar_t, но если вы используете windows.h, он вам понадобится.
примечание: это не обязательно 16 бит. Это зависит от ОС.
Бэтмен
3
Я думаю, что в Linux wchar_t составляет 32 бита
user10607
8
«В повседневном использовании вам не нужно использовать wchar_t» - произвольное обвинение. Как не носитель английского языка, я могу сказать, что я должен использовать это все время ...
Хейджи
18
Это означает, что текст хранится как wchar_tсимволы, а не как простые старые charсимволы.
(Первоначально я сказал, что это означает Unicode. Я был неправ в этом. Но это может быть использовано для Unicode.)
L - префикс, используемый для широких строк. Каждый символ использует несколько байтов (в зависимости от размера wchar_t). Используемая кодировка не зависит от этого префикса. Я имею в виду, что это не обязательно должен быть UTF-16, в отличие от изложенных здесь в других ответах
Ответы:
Это
wchar_t
буквальный, для расширенного набора символов. В Википедии есть небольшая дискуссия на эту тему и примеры c ++.источник
«L» означает
wchar_t
, что, в отличие от обычного символа, требуется 16-битная память, а не 8-битная. Вот пример:А
wchar_t
в два раза больше простого символа. При ежедневном использовании вам не нужно использовать wchar_t, но если вы используете windows.h, он вам понадобится.источник
Это означает, что текст хранится как
wchar_t
символы, а не как простые старыеchar
символы.(Первоначально я сказал, что это означает Unicode. Я был неправ в этом. Но это может быть использовано для Unicode.)
источник
Это означает, что это широкий характер
wchar_t
.Похоже на
1L
долгую ценность.источник
Это означает, что это массив широких символов (
wchar_t
) вместо узких символов (char
).Это просто строка символов другого типа, не обязательно строка Unicode .
источник
L - префикс, используемый для широких строк. Каждый символ использует несколько байтов (в зависимости от размера
wchar_t
). Используемая кодировка не зависит от этого префикса. Я имею в виду, что это не обязательно должен быть UTF-16, в отличие от изложенных здесь в других ответахисточник