Почему typedef char CHAR - PullRequest
2 голосов
/ 28 апреля 2010

Ребята, быстро заглянув в Winnt.h, я обнаружил, что существует множество typedef, и один из них, например, CHAR для символа. Зачем? Какова была цель этих typdefs? Почему бы не использовать то, что уже есть (char, int и т. Д.)?
Спасибо.

Ответы [ 2 ]

9 голосов
/ 28 апреля 2010

Win32 API должен быть независимым от языка. Typedefs привязаны к фактическим размерам элементов на процессоре x86. Таким образом, CHAR - это char, DWORD - это unsigned long .... Это все для того, чтобы языки, кроме C и C ++, могли «подключаться» к API даже с различными моделями памяти.

4 голосов
/ 28 апреля 2010

WIN32 API также должен быть независимым от платформы. Когда компилятор подстраивается под разные размеры слов, типы также могут меняться.

Например, на 16-битных платформах:

typedef WORD unsigned int;
typedef DWORD unsigned long;

На 32-битных платформах:

typedef WORD unsigned short;
typedef DWORD unsigned int;

Это пример, ваш пробег может отличаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...