1

我已经阅读了一些与此类似的其他问题,但我仍然不知道“VOID”和“void”在用法上是否存在差异。

在不知道与 void 的确切区别的情况下,我使用 VOID 感到不舒服。

非常感谢任何令人欣慰的建议。

4

2 回答 2

5

void是语言保留的关键字,但VOID不是。它在“winnt.h”中定义如下:

#ifndef VOID
#define VOID void

所以它们本质上是相同的,可以互换使用。有时为了约定而使用一个代替另一个,但使用哪一个并不重要。无论如何,预处理器最终都会在您的代码中替换VOIDvoid,因为这就是这样#define做的。

实际上很多关键字在 Windows 中都是“类型定义”的。我认为这只是为了确保 8 位、16 位和 32 位 Windows 之间的兼容性。为什么他们这样做了void……这只是 Windows 很奇怪。(我所知道的)

于 2013-06-28T17:56:47.087 回答
3

不同之处在于它void是语言的一部分,而VOID不是。如果您查看包含 的源文件之一的预处理器的输出VOID,您应该能够找到包含以下行的行:

typedef void VOID;

这应该让你感觉更好。

编辑:我从您上面的评论中看到有一条#define VOID void线。在这种情况下,您知道它们是相同的,但您可能不会VOID在预处理器输出中看到任何内容。您看到,在您使用的代码中的任何地方,VOID都会有预处理的输出void

于 2013-06-28T17:50:15.380 回答