字符串前面的'L'在C ++中意味着什么?

时间:2011-06-17 09:55:41

标签: c++

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

虽然它似乎没有L,但前缀的目的是什么?它的使用方式对于核心C程序员来说甚至都没有意义。

6 个答案:

答案 0 :(得分:119)

对于扩展字符集,它是wchar_t字面值。 Wikipedia对此主题以及c ++示例进行了一些讨论。

答案 1 :(得分:67)

'L'表示wchar_t,与普通字符相反,它需要16位存储而不是8位。这是一个例子:

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

wchar_t是简单字符的两倍大。在日常使用中,您不需要使用wchar_t,但如果您使用的是windows.h,则需要它。

答案 2 :(得分:17)

这意味着文本存储为wchar_t个字符,而不是普通的旧char字符。

(我最初说它意味着unicode。我错了。但它可以用于unicode。)

答案 3 :(得分:12)

这意味着它是一个宽字符wchar_t

类似于1L是一个很长的值。

答案 4 :(得分:12)

这意味着它是一个宽字符数组(wchar_t)而不是窄字符(char)。

这只是一串不同类型的字符,不一定是Unicode字符串

答案 5 :(得分:10)

L是用于宽字符串的前缀。每个字符使用几个字节(取决于wchar_t的大小)。使用的编码与此前缀无关。我的意思是它不一定必须是UTF-16,这与其他答案不同。