C++ 在c+中,VOID和VOID有区别吗+;?
我读过一些类似的问题,但我仍然不知道 “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
的某个源文件的预处理器输出,您应该能够找到一行,其中包含类似以下内容的行:
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
,因为前者是标准,而后者不是。