为什么typedef char CHAR

时间:2010-04-28 14:00:04

标签: c++ winapi

伙计们,快速浏览一下Winnt.h我发现有很多typedef,其中一个是例如CHAR的char。为什么?这些typdefs的目的是什么?为什么不使用已经存在的东西(char,int等)?
谢谢。

2 个答案:

答案 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;

这个例子,你的里程可能会有所不同。