[英]Is there a difference in VOID and void, in c++?
我讀過其他一些與此類似的問題,但是我仍然不知道“ VOID”和“ void”在用法上是否有區別。
在不知道void的確切區別的情況下,使用VOID感到不舒服。
任何安慰的建議,我們將不勝感激。
void
是語言保留的關鍵字,但VOID
不是。 它在“ winnt.h”中定義如下:
#ifndef VOID
#define VOID void
因此它們本質上是相同的,可以互換使用。 有時,為了約定,使用一個代替另一個,但是使用哪個無關緊要。 無論如何,預處理器最終都會用代碼中的void
替換VOID
,因為#define
就是這樣做的。
實際上,許多關鍵字在Windows中被“ typedef定義”為大寫。 我認為這只是為了確保8位,16位和32位Windows之間的兼容性。 為什么他們這樣做卻是void
……那只是Windows太奇怪了。 (我所知道的)
區別在於, void
是語言的一部分,而VOID
不是。 如果查看包含VOID
的源文件之一的預處理器的輸出,則應該能夠找到包含以下內容的行:
typedef void VOID;
這應該會讓您感覺更好。
編輯:我從您上面的評論中看到有#define VOID void
行。 在那種情況下,您知道它們是相同的,但是您可能在預處理器輸出中看不到任何VOID
。 您將看到的是,在代碼中所有使用VOID
,預處理后的輸出將VOID
void
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.