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

C++ 在c+中,VOID和VOID有区别吗+;?,c++,void,difference,C++,Void,Difference,我读过一些类似的问题,但我仍然不知道 “VOID”和“VOID”在用法上有区别 在不知道虚空与虚空的确切区别的情况下,我觉得使用虚空很不舒服 非常感谢任何令人安慰的建议。区别在于void是语言的一部分,而void不是。如果查看包含VOID的某个源文件的预处理器输出,您应该能够找到一行,其中包含类似以下内容的行: typedef void VOID; 这会让你感觉更好 编辑:我从你上面的评论中看到有一行#define VOID行。在这种情况下,您知道它们是相同的,但在预处理器输出中可能不会看到任

我读过一些类似的问题,但我仍然不知道 “VOID”和“VOID”在用法上有区别

在不知道虚空与虚空的确切区别的情况下,我觉得使用虚空很不舒服


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

区别在于
void
是语言的一部分,而
void
不是。如果查看包含
VOID
的某个源文件的预处理器输出,您应该能够找到一行,其中包含类似以下内容的行:

typedef void VOID;
这会让你感觉更好


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

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

typedef void VOID;
这会让你感觉更好


编辑:我从你上面的评论中看到有一行
#define VOID
行。在这种情况下,您知道它们是相同的,但在预处理器输出中可能不会看到任何
VOID
。您将看到,在您使用的代码中,
VOID
的任何地方,预处理的输出都会有
VOID
VOID
是语言保留的关键字,但
VOID
不是。在“winnt.h”中定义如下:

#ifndef VOID
#define VOID void
因此,它们基本相同,可以互换使用。有时,出于惯例,一个用来代替另一个,但使用哪一个并不重要。预处理器最终会在代码中用
VOID
替换
VOID
,因为这就是
#define
的作用


事实上,许多关键字在Windows中都是“typedef”的,以大写字母表示。我认为这只是为了确保8位、16位和32位Windows之间的兼容性。为什么他们要用
void
这样做呢。。。那只是窗户有点奇怪。(据我所知)

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

#ifndef VOID
#define VOID void
因此,它们基本相同,可以互换使用。有时,出于惯例,一个用来代替另一个,但使用哪一个并不重要。预处理器最终会在代码中用
VOID
替换
VOID
,因为这就是
#define
的作用


事实上,许多关键字在Windows中都是“typedef”的,以大写字母表示。我认为这只是为了确保8位、16位和32位Windows之间的兼容性。为什么他们要用
void
这样做呢。。。那只是窗户有点奇怪。(据我所知)

这取决于如何定义
VOID
。它不是标准语言或标准库的一部分。听起来像是Windows的东西。
VOID
不是标准的东西。一定是某个地方来的typedef。检查你从哪里得到它的文件。也许
?我去了定义,在“winnt.h”中显示了“#define VOID VOID”。这是否意味着VOID与VOID完全相同?@CodeDoctorJL-否,这意味着在编译步骤之前,预处理器将用
VOID
替换代码中出现的所有
VOID
。这取决于
VOID
的定义方式。它不是标准语言或标准库的一部分。听起来像是Windows的东西。
VOID
不是标准的东西。一定是某个地方来的typedef。检查你从哪里得到它的文件。也许
?我去了定义,在“winnt.h”中显示了“#define VOID VOID”。这是否意味着VOID与VOID完全相同?@CodeDoctorJL-否,这意味着在编译步骤之前,预处理器将用
VOID
替换代码中出现的所有
VOID
。谢谢大家!现在有道理了。也就是说,你应该使用
void
,而不是
void
,因为前者是标准,而后者不是。谢谢大家!现在有道理了。这意味着,您应该使用
void
,而不是
void
,因为前者是标准,而后者不是。