wchar_t只是一个unsigned short的typedef吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (52)

例如,确实:

wchar_t x;

翻译成:

unsigned short x;
提问于
用户回答回答于

简而言之:在C中可能是C ++ no。

广泛。C将wchar_t定义为typedef,但在Unix中它通常是4个字节(所以一般不会很短),在Windows 2中它可能很短。

在C ++中它是独一无二的内置状型char或者int,这样你就可以合法超载void foo(short x)void foo(wchar_t x)

用户回答回答于

对于任何可能遇到此答案的人,因为Visual Studio项目中的函数调用将不会链接,尽管双方都采用wchar_t(或LPCTSTR与UNICODE #defined 类似的类型),并且当DUMPBIN库导出时,函数需要const unsigned short *,请注意,VS允许您将其wchar_t作为内置类型关闭。如果有人在库中改变了这一点,并且你没有在你的项目中找到相同的编译器开关,它将不会链接。

所属标签

可能回答问题的人

  • uncle_light

    5 粉丝518 提问8 回答
  • 嗨喽你好

    7 粉丝480 提问8 回答
  • 人生的旅途

    10 粉丝484 提问7 回答
  • 无聊至极

    4 粉丝504 提问6 回答

扫码关注云+社区

领取腾讯云代金券