2

我试图了解这些类型是否都相同。我有这个来自windows.h的函数: GetCommandLine(),在UNICODE模式下,它返回一个LPWSTR. 现在,如果我更深入地挖掘,我可以看到它是怎样LPWSTRwchar_t*,如果我更进一步,我会发现它wchar_tunsigned short(16 字节)或unsigned long(32 字节)。然而,如果我这样做:

unsigned short* SysComm = GetCommandLine();

我收到此错误:

初始化时无法从 'LPWSTR {aka wchar_t*} 转换为 'short unsigned int*'

那么,编译器是否遵循相同的逻辑来找出最终LPWSTR还是unsigned short*我错了?

4

1 回答 1

3

wchar_t是一种独特的类型,被定义为具有与其他整数类型之一相同的属性。

类型wchar_t是一个独特的类型[...]。类型wchar_t应具有与其他整数类型之一相同的大小、符号和对齐要求 (3.11),称为其基础类型

因此,您不能像从 awchar_t*到 ashort*那样隐式地从 a 转换int*为 a short*

于 2013-04-26T09:36:01.577 回答