我了解它的作用:将字符串文字指定为
它是某种宏吗?它是GCC编译器的运算符吗?它到底是什么?
const wchar_t *
(宽字符字符串),而不是const char *
(普通字符),但它实际上是如何定义的呢?它是某种宏吗?它是GCC编译器的运算符吗?它到底是什么?
const wchar_t *
(宽字符字符串),而不是const char *
(普通字符),但它实际上是如何定义的呢?字面前缀与后缀一样,是核心语言的一部分:
'a' // type: char
L'a' // type: wchar_t
"a" // type: char[2]
L"a" // type: wchar_t[2]
U"a" // type: char32_t[2]
1 // type: int
1U // type: unsigned int
0.5 // type: double
0.5f // type: float
0.5L // type: long double
请注意,wchar_t
与Unicode没有任何关系。这里是我在该主题上的详细描述。
n
个const wchar_t
字符的数组”,其中n是下面定义的字符串的大小; 它具有静态存储期,并使用给定的字符进行初始化。L在这里的意思是宽字符:wchar_t
。带有L的字符串编码为16位而不是8位,举个例子:
"A" = 41
L"A" = 00 41