我必须使用一些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
?