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