簡體   English   中英

在c ++中,VOID和void有區別嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM