伙计们,快速浏览一下Winnt.h我发现有很多typedef,其中一个是例如CHAR的char。为什么?这些typdefs的目的是什么?为什么不使用已经存在的东西(char,int等)?
谢谢。
答案 0 :(得分:9)
win32 API需要与语言无关。 typedef与x86处理器上的实际项目大小相关联。因此CHAR是char,DWORD是无符号长的....除了C和C ++以外的语言可以“插入”API,即使使用不同的内存模型。
答案 1 :(得分:4)
WIN32 API也需要与平台无关。当编译器针对不同的字大小进行调整时,类型也可能会发生变化。
例如,在16位平台上:
typedef WORD unsigned int;
typedef DWORD unsigned long;
在32位平台上:
typedef WORD unsigned short;
typedef DWORD unsigned int;
这个例子,你的里程可能会有所不同。