在c ++中,VOID和void有区别吗?

时间:2013-06-28 17:46:09

标签: c++ void difference

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

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

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

2 个答案:

答案 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