首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'WCHAR‘和'wchar_t’有什么区别?

'WCHAR‘和'wchar_t’有什么区别?
EN

Stack Overflow用户
提问于 2009-02-18 16:33:00
回答 5查看 18.8K关注 0票数 24

WCHARwchar_t之间有什么实际区别吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-18 16:34:50

好吧,一个实际的区别是我的平台上不存在WCHAR。只适用于Windows (并且不打算将程序移植到另一个平台),并且包含必要的头文件(因为WCHAR只是一个typedef)。

票数 13
EN

Stack Overflow用户

发布于 2009-02-18 16:52:36

wchar_t是由C++标准定义的一种独特类型。

WCHAR是_non_standard,据我所知,它只存在于Windows上。但是,它只是wchar_t的一个typedef (或者可能是一个宏),所以它没有实际的区别。

较早版本的MSVC没有将wchar_t作为第一类类型-相反,它只是shorttypedef

最有可能的是,微软引入了WCHAR来表示任何编译器版本中的“宽字符类型”,无论wchar_t是否作为本机类型存在。

不过,您应该在代码中使用wchar_t。这就是它的作用。

票数 17
EN

Stack Overflow用户

发布于 2009-02-19 05:35:00

有人知道WCHAR多大了吗?我想它至少可以追溯到Windows NT 3.1。我推测,当微软开始在Windows头文件中使用WCHAR时,wchar_t在C或C++标准中都没有定义。如果我说错了,请纠正我。

微软的处境并不令人羡慕,它必须支持声明和头文件,a)必须在C和C++中工作;b)在非常不同的体系结构(i86,MIPS,PowerPC,alpha...)下编译。以及c)必须向后兼容为15+历史悠久的编译器编写的源代码。此外,任何突破性的变化,以及在过去20年中出版的数千本书、参考手册、在线文档等,都会突然变得错误。

WCHAR是一个接口--一旦发布,即使新代码不需要它,它也是一成不变的。

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

https://stackoverflow.com/questions/561839

复制
相关文章

相似问题

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