为什么在分配wstring时会有一个L

Why is there an L when assigning a wstring?

本文关键字:有一个 wstring 分配 为什么      更新时间:2023-10-16

为什么在创建wstring时字符串前面有一个L?

例如-

std::string = "regular string :3";
std::wstring = L"wide string :/";

是因为它被LPSTR、LPWSTR和LPCSTR引用了吗?

这与LPSTR、LPWSTR和LPCSTR有关,这是正确的,但这并不完全是这里发生的事情。这些类型实际上并不是标准C++的一部分,而是与Windows API一起使用的一组特定于Microsoft的类型。

C++有两种内置的字符类型,char,与std::string一起使用,wchar_t,与std::wstring一起使用。如果用正则引号编写字符串文字,C++会将其视为由chars组成的字符串,可以与std::string一起使用。要告诉C++,您正试图制作一个由wchar_t s组成的字符串文本(这是处理std::wstring所需要的),您需要在它前面加一个L,因为这就是C++的定义方式。

请注意,这完全独立于上面提到的Microsoft类型。

相关文章: