首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinAPI中的sz和pwsz前缀

WinAPI中的sz和pwsz前缀
EN

Stack Overflow用户
提问于 2013-04-15 22:29:42
回答 2查看 3.8K关注 0票数 9

我现在对WinAPI中的CHAR字符串和WCHAR字符串的匈牙利符号前缀感到有点困惑。当我们使用CHAR字符串时,通常会使用这样的前缀:

代码语言:javascript
复制
CHAR szString[] = "Hello";

我们有一个以零结尾的字符串szString,所以一切都很好。但当我们使用WCHAR字符串时,通常会使用这样的前缀:

代码语言:javascript
复制
WCHAR pwszString[] = L"Hello";

它代表指向以零结尾的宽字符串的指针...但我们的类型不是这样的。指向以零结尾的宽字符串的指针是WCHAR**或PWSTR*。我说错了吗?为什么对于CHAR字符串是sz,对于WCHAR字符串是pwsz而不是wsz?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-16 02:31:09

第二个例子具有误导性(尽管并不少见)。它应该是这两个中的一个:

代码语言:javascript
复制
WCHAR wszString[] = L"Hello";
WCHAR *pwszString = L"Hello";

由于数组可以在大多数需要指针的上下文中使用,因此一些程序员在区分上有点马虎。

匈牙利语已经过时了,但它可以是useful when used well

票数 8
EN

Stack Overflow用户

发布于 2013-04-15 22:35:27

CHAR szString[]与CHAR * szString同义。两者都是指向字符串的指针。指向以零结尾的字符串的指针是CHAR*,指向以零结尾的宽字符串的指针是WCHAR* (不是WCHAR**)。

现在,如果您想变得学究,您可以(错误地)声称CHAR[]是“一个字符数组”,在这种情况下,"rgc“可能是正确的前缀。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16017771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档