1

これに似た他の質問をいくつか読みましたが、「VOID」と「void」の使用方法に違いがあるかどうかはまだわかりません。

void との正確な違いを知らずに VOID を使用するのは不快です。

慰めのアドバイスは大歓迎です。

4

2 に答える 2

5

void言語で予約されているキーワードですが、VOIDそうではありません。「winnt.h」で次のように定義されています。

#ifndef VOID
#define VOID void

したがって、それらは本質的に同じであり、交換可能に使用できます。慣習のために一方が他方の代わりに使用されることもありますが、どちらを使用してもかまいません。とにかく、プリプロセッサはコード内でVOIDwithを置き換えることになります。void#define

実際、Windows では多くのキーワードが大文字に "typedef" され​​ています。8 ビット、16 ビット、32 ビットの Windows 間の互換性を確保するためだと思います。なぜ彼らはそれをしvoidたのですか...それはただWindowsが奇妙であるということです。(私の知る限りでは)

于 2013-06-28T17:56:47.087 に答える
3

違いは、それvoidは言語の一部であり、そうでVOIDはないということです。を含むソース ファイルの 1 つのプリプロセッサの出力を見ると、VOID次のような行を含む行を見つけることができるはずです。

typedef void VOID;

気分が良くなるはずです。

編集:上記のコメントから、#define VOID void行があることがわかります。その場合、それらが同じであることはわかっていますがVOID、プリプロセッサの出力には何も表示されない可能性があります。表示されるのは、使用したコードのどこでも、VOID前処理された出力がvoid代わりに含まれていることです。

于 2013-06-28T17:50:15.380 に答える