Что означает "L" перед строкой в ​​С++?

this->textBox1->Name = L"textBox1";

Хотя он работает без L, в чем цель префикса? То, как он используется, даже не имеет смысла для программиста на жестком языке C.

Ответ 1

Это a wchar_t литерал, для расширенного набора символов. Wikipedia имеет небольшое обсуждение этой темы и примеры С++.

Ответ 2

'L' означает wchar_t, который, в отличие от нормального символа, требует 16 бит хранения, а не 8 бит. Вот пример:

"A"    = 41
"ABC"  = 41 42 43
L"A"   = 00 41
L"ABC" = 00 41 00 42 00 43

A wchar_t в два раза больше, чем просто char. В ежедневном использовании вам не нужно использовать wchar_t, но если вы используете windows.h, вам это понадобится.

Ответ 3

Это означает, что текст хранится как wchar_t символы, а не простые старые символы char.

(я изначально сказал, что это означает unicode. Я ошибался, но его можно использовать для unicode.)

Ответ 4

Это означает массив широких символов (wchar_t) вместо узких символов (char).

Это просто строка другого типа символов, не обязательно строка Unicode.

Ответ 5

Это означает, что это широкий символ, wchar_t.

Аналогично 1L является длинным значением.

Ответ 6

L - префикс, используемый для широких строк. Каждый символ использует несколько байтов (в зависимости от размера wchar_t). Используемая кодировка не зависит от этого префикса. Я имею в виду, что это не обязательно обязательно UTF-16, в отличие от других ответов здесь.