[c++] C ++에서 문자열 앞의 ‘L’은 무엇을 의미합니까?

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

없이 작동하는 것처럼 보이지만 L접두사의 목적은 무엇입니까? 그것이 사용되는 방식은 하드 코어 C 프로그래머에게는 의미가 없습니다.



답변

그것은의 wchar_t확장 문자 세트의 문자. Wikipedia 는이 주제와 C ++ 예제에 대해 약간의 토론을합니다.


답변

‘L’은 wchar_t일반 문자와 달리 8 비트가 아닌 16 비트 스토리지가 필요함을 의미합니다. 예를 들면 다음과 같습니다.

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

A wchar_t는 단순 문자의 두 배입니다. 매일 사용하는 경우 wchar_t를 사용할 필요는 없지만 windows.h를 사용하는 경우 필요합니다.


답변

이는 텍스트가 wchar_t평범한 오래된 char문자가 아닌 문자 로 저장됨을 의미합니다 .

(나는 원래 그것이 유니 코드를 의미한다고 말했다. 나는 그것에 대해 틀렸다. 그러나 유니 코드에 사용될 수있다.)


답변

그것은 넓은 문자임을 의미합니다 wchar_t.

1L긴 값과 비슷 합니다.


답변

wchar_t좁은 문자 ( char) 대신 넓은 문자 ( ) 의 배열임을 의미합니다 .

유니 코드 문자열 일 필요는 없으며 다른 종류의 문자 일뿐 입니다.


답변

L은 넓은 문자열에 사용되는 접두사입니다. 각 문자는 크기에 따라 몇 바이트를 사용합니다 wchar_t. 사용 된 인코딩은이 접두사와 독립적입니다. 다른 답변에서 언급 한 것과 달리 반드시 UTF-16 일 필요는 없습니다.


답변