C语言,dword一定是无符号或有符号的吗?

Python010

C语言,dword一定是无符号或有符号的吗?,第1张

dword 一般是无符号的,但本身只是为了助记,double word,你也可以自己

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(完全等同)