Кто-нибудь может понять, почему в заголовке 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