#define VOID void
VC++ を触り始めて 8 年ぐらい。
いまだにわからないのは、何故
#define VOID void
という定義があるのか。
僕の推測。
- Microsoft はすべて大文字の型定義が好き
- INT とか SHORT とか
- また、ポインタ型の定義も好き
- PINT とか PBOOL とか
- それで void* を PVOID にしたい
- そのためには void は VOID である必要がある
僕は void の方が好きだけど、TCHAR、DWORD、LPTCSTR などとあわせて使用するなら、VOID の方が Windows プログラミングっぽく統一されているような気がする。
ちなみに、VOID や INT などの型以外にも、こんなものがある。
#define NULL 0 #define FALSE 0 #define TRUE 1 #define IN #define OUT #define OPTIONAL #define CALLBACK __stdcall #define WINAPI __stdcall #define WINAPIV __cdecl #define APIENTRY WINAPI #define APIPRIVATE __stdcall #define PASCAL __stdcall #define FAR far #define NEAR near #define CONST const
時々 Microsoft の API で IN とか OUT とか見るけど、単なる目印という意味しかなかったのか。なるほど。