これに似た他の質問をいくつか読みましたが、「VOID」と「void」の使用方法に違いがあるかどうかはまだわかりません。
void との正確な違いを知らずに VOID を使用するのは不快です。
慰めのアドバイスは大歓迎です。
これに似た他の質問をいくつか読みましたが、「VOID」と「void」の使用方法に違いがあるかどうかはまだわかりません。
void との正確な違いを知らずに VOID を使用するのは不快です。
慰めのアドバイスは大歓迎です。
void
言語で予約されているキーワードですが、VOID
そうではありません。「winnt.h」で次のように定義されています。
#ifndef VOID
#define VOID void
したがって、それらは本質的に同じであり、交換可能に使用できます。慣習のために一方が他方の代わりに使用されることもありますが、どちらを使用してもかまいません。とにかく、プリプロセッサはコード内でVOID
withを置き換えることになります。void
#define
実際、Windows では多くのキーワードが大文字に "typedef" されています。8 ビット、16 ビット、32 ビットの Windows 間の互換性を確保するためだと思います。なぜ彼らはそれをしvoid
たのですか...それはただWindowsが奇妙であるということです。(私の知る限りでは)
違いは、それvoid
は言語の一部であり、そうでVOID
はないということです。を含むソース ファイルの 1 つのプリプロセッサの出力を見ると、VOID
次のような行を含む行を見つけることができるはずです。
typedef void VOID;
気分が良くなるはずです。
編集:上記のコメントから、#define VOID void
行があることがわかります。その場合、それらが同じであることはわかっていますがVOID
、プリプロセッサの出力には何も表示されない可能性があります。表示されるのは、使用したコードのどこでも、VOID
前処理された出力がvoid
代わりに含まれていることです。