也就是说,为什么unsigned short var= L'ÿ'工作,但unsigned short var[]= L"ÿ";不是?
L是宽字符文字和宽字符串文字的前缀。这是语言的一部分,而不是标题。它也不是特定于 GCC 的。它们会像这样使用:
wchar_t some_wchar = L'ÿ';
wchar_t *some_wstring = L"ÿ"; // or wchar_t some_wstring[] = L"ÿ";
Run Code Online (Sandbox Code Playgroud)
您可以这样做,unsigned short something = L'ÿ';因为定义了从 wchar_t 到 short 的转换。wchar_t* 和short 之间没有定义这种转换。