Назначение макроса VOID верхнего регистра и INT typedef в winnt.h

Кто-нибудь может понять, почему в заголовке winnt.h определен макрос VOID в верхнем регистре?

Чтобы усложнить ситуацию, VOID - это макрос, тогда как CHAR , SHORT , INT и LONG являются typedefs.

См. Соответствующий отрывок из winnt.h :

#ifndef VOID
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
#if !defined(MIDL_PASS)
typedef int INT;
#endif
#endif

Историческая причина, возможно, для использования VOID * pointer вместо void * pointer ?

EDIT : Еще более тревожно видеть людей использование VOID вместо void при программировании Windows сегодня . Вы также можете увидеть это как часть документов MSDN, например http://msdn.microsoft.com/en-us/library/bb205867 (v = vs.85) .aspx

7
задан Nick 12 July 2011 в 19:53
поделиться