Я пытаюсь понять, все ли эти типы. У меня есть эта функция от 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 * в короткий *, например? – ali
@ali Неявно. Вы можете сделать это с помощью 'reinterpret_cast', но это будет плохая идея. Вы можете использовать от 'int' до' short', но не между указателями для каждого из них. –
Спасибо. Итак, если я скажу 'typedef int myint', то' myint' и 'int' не совпадают для компилятора, даже если они имеют одинаковый размер, правильно? – ali