例如,会:
wchar_t x;
翻译为:
unsigned short x;
发布于 2010-03-07 15:34:04
简而言之:在C中可能是在C++中。
广泛性。C将wchar_t定义为typedef,但在Unix中,它通常是4字节(因此通常不短),而在Windows2中,它可能很短。
在C++下,它是唯一的内置类型,如char
或int
,因此您可以合法地重载void foo(short x)
和void foo(wchar_t x)
发布于 2010-09-08 09:27:13
其他任何人可能会遇到这个问题,因为你的Visual Studio项目中的函数调用不会链接,尽管双方都使用wchar_t
(或类似的类型,例如定义了UNICODE #的LPCTSTR
),并且当你将库的导出中的函数作为const unsigned short *
使用时,请注意,VS允许您将wchar_t
作为内置类型关闭。如果有人在库中更改了这一点,而你没有在你的项目中点击相同的编译器开关,那么它将无法链接。
此选项可以在“项目属性>C/C++/语言/将WChar_t视为内置类型”下更改,也可以通过"/Zc“选项更改。
发布于 2010-03-07 16:39:07
对于C,wchar_t
是一个typedef
。它是否是unsigned int
的同义词,是无符号类型,还是4字节,都是由实现定义的。
在C++中,wchar_t
是一种独特的内置类型。在这里,它的大小和符号也是由实现定义的。
https://stackoverflow.com/questions/2395514
复制相似问题