typedef long dword
这样就是有符号的,不过为了大家看着方便最好不要这样做,易读性差。
DWORD数据类型是windows定义的数据类型,不是标准c中的数据类型。标准c包含的基本数据类型有以下几种:
short、int、long、char、float、double
而DWORD是无符号32位整型,因此在目前32位和64位系统下一般我们在代码中可以如下自定义DWORD:
typedef unsigned int DWORD
同理WORD、BYTE等都可以如下自定义:
typedef unsigned short WORD
typedef unsigned char BYTE
c语言中DWORD 就是 Double Word, 每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位。DWORD-12就是以双字的形式表示-12的值。
在Visual C++ 6.0中,BYTE与WORD,DWORD本质上都是一种无符号整型,它们在WINDEF.H中被定义,定义如下:
typedef unsigned char BYTE
typedef unsigned short WORD
typedef unsigned long DWORD
也就是说BYTE是无符号的char型(char型本质上也是一种1个字节的整型),WORD是无符号short型,DWORD是无符号long型。
而在Visual C++ 6.0中,char型长度为1字节,short型长度为2字节,int和long型长度都为4字节,因此可以认为BYTE与WORD,DWORD定义的变量分别获得了1字节,2字节,4字节内存,正与BYTE与WORD,DWORD的字面意义相符。
即:BYTE=unsigned char(完全等同)
WORD=unsigned short(完全等同)