Что означает 'L' перед строкой в C++?



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


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

494   6  
c++

6 ответов:

Это wchar_t литерал, для расширенного набора символов. Википедия есть небольшая дискуссия на эту тему, и примеры c++.

' 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 в два раза больше, чем простой символ. В ежедневном использовании вам не нужно использовать wchar_t, но если вы используете windows.ч вы собираетесь в ней нуждается.

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

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

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

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

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

аналогично 1L длинное значение.

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

Comments

    Ничего не найдено.