我已经阅读了一些与此类似的其他问题,但我仍然不知道“VOID”和“void”在用法上是否存在差异。
在不知道与 void 的确切区别的情况下,我使用 VOID 感到不舒服。
非常感谢任何令人欣慰的建议。
我已经阅读了一些与此类似的其他问题,但我仍然不知道“VOID”和“void”在用法上是否存在差异。
在不知道与 void 的确切区别的情况下,我使用 VOID 感到不舒服。
非常感谢任何令人欣慰的建议。
void
是语言保留的关键字,但VOID
不是。它在“winnt.h”中定义如下:
#ifndef VOID
#define VOID void
所以它们本质上是相同的,可以互换使用。有时为了约定而使用一个代替另一个,但使用哪一个并不重要。无论如何,预处理器最终都会在您的代码中替换VOID
为void
,因为这就是这样#define
做的。
实际上很多关键字在 Windows 中都是“类型定义”的。我认为这只是为了确保 8 位、16 位和 32 位 Windows 之间的兼容性。为什么他们这样做了void
……这只是 Windows 很奇怪。(我所知道的)
不同之处在于它void
是语言的一部分,而VOID
不是。如果您查看包含 的源文件之一的预处理器的输出VOID
,您应该能够找到包含以下行的行:
typedef void VOID;
这应该让你感觉更好。
编辑:我从您上面的评论中看到有一条#define VOID void
线。在这种情况下,您知道它们是相同的,但您可能不会VOID
在预处理器输出中看到任何内容。您将看到,在您使用的代码中的任何地方,VOID
都会有预处理的输出void
。