c++ - C++ 中的 L 前缀究竟是什么?

标签 c++ string widestring

我了解它的作用:将字符串文字指定为 const wchar_t *(宽字符串)而不是 const char *(普通旧字符),但是如何真的定义了吗?

它是某种宏吗?它是 GCC 编译器的运算符吗? 是什么

最佳答案

字面前缀是核心语言的一部分,很像后缀:

'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 没有任何关系。这是 extended rant of mine主题。

关于c++ - C++ 中的 L 前缀究竟是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087219/

相关文章:

c++ - 如何从 MPU 陀螺仪发送的字节数组中获取整数

C:非 NUL 终止的字符数组

c++ - 将宽字符串文字与字符串宏组合

Delphi:快速(呃)宽字符串连接

c++ - C++ 标准中的预处理器宏

c++ - 创建指向矩阵第一个值的指针

c++ - 在 gdb 中显示参数包的值

java - 在 forEach() 循环中组合字符串失败

string - Powershell在那里添加的字符串类型的ParameterizedProperty Chars属性是什么?

C++ 如何将宽字符串转换为 base64?