我想了解這些類型是否都一樣。我有這個功能windows.h:GetCommandLine()
,在UNICODE
模式下,它返回一個LPWSTR
。現在,如果我深入瞭解,我可以看到LPWSTR
是如何wchar_t*
,如果我走得更遠,我發現wchar_t
是unsigned short
(16字節)或unsigned long
(32字節)。但是,如果我這樣做:LPWSTR,wchar_t *和C++中的無符號短指針
unsigned short* SysComm = GetCommandLine();
我得到這個錯誤:
cannot convert from 'LPWSTR {aka wchar_t*} to 'short unsigned int*' in initialization
因此,該編譯器遵循同樣的邏輯,找出LPWSTR
到底unsigned short*
還是我錯了?
但是我可以從int *轉換成short *嗎? – ali 2013-04-26 09:44:24
@ali不含蓄。你可以用'reinterpret_cast'來完成,但這不是個好主意。你可以從'int'投射到'short',但不能在指向每個人的指針之間。 – 2013-04-26 09:49:39
謝謝。所以,如果我說'typedef int myint',那麼編譯器的myint和int就不一樣了,即使它們有相同的大小,對吧? – ali 2013-04-26 10:16:21