【发布时间】:2011-10-03 21:18:26
【问题描述】:
有人知道为什么在winnt.h 标头中定义了大写的VOID 宏吗?
为了让事情更混乱,VOID 是一个宏,而CHAR、SHORT、INT 和 LONG 是类型定义。
查看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 的历史原因?
编辑:更令人不安的是,今天在进行 Windows 编程时看到人们使用 VOID 而不是 void。您也可以将其视为 MSDN 文档的一部分,例如http://msdn.microsoft.com/en-us/library/bb205867(v=vs.85).aspx
【问题讨论】:
标签: c++ windows visual-c++