我必须使用一些char16宽的字符串进行uefi编程。如何轻松初始化它们?
第八章很简单:

CHAR8 *Str = "yehaw\0";

同时char16也很努力,所以我选择了这个初始化:
CHAR16 *Str;
Str = AllocatePool(6*2); //AllocatePool allocates bytewise
Str = ('y','e','h','a','w','\o');

所以问题是:谁是正确的?初始化char16字符串的简单方法是什么?

最佳答案

如果您有C标准库,并且使用的是符合C/C++编译器,通常用L Work对一个声明的字符串进行预编码。

 CHAR16 *Str =  L"yehaw";

作品。但是,为什么不使用普遍接受的类型
 wchar_t

10-08 05:15