word或dword区别

Posted 郑军学长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了word或dword区别相关的知识,希望对你有一定的参考价值。

在看C/C++的书或者试题时,有时会见到利用word或dword定义的变量,第一次看到的时候并不知其是什么,更不用说word或dword占几个字节了。幸好在VC安装文件夹下有相关的定义。如C:\Program Files\Microsoft VisualStudio\VC98\Include查看头文件WINDEF.H的定义:

typedef unsignedlong      DWORD;

typedefint                BOOL;

typedef unsignedchar      BYTE;

typedef unsignedshort     WORD;

typedeffloat              FLOAT;

typedefFLOAT              *PFLOAT;

typedef BOOLnear          *PBOOL;

typedef BOOLfar           *LPBOOL;

typedef BYTEnear          *PBYTE;

typedef BYTE far           *LPBYTE;

typedef intnear           *PINT;

typedef intfar            *LPINT;

typedef WORDnear          *PWORD;

typedef WORDfar           *LPWORD;

typedef longfar           *LPLONG;

typedef DWORDnear         *PDWORD;

typedef DWORDfar          *LPDWORD;

typedef voidfar           *LPVOID;

typedef CONST voidfar     *LPCVOID;

     从以上定义可以发现,WORD占2个字节,DWORD占4个字节。

关于DWORD使用中重要的一点。DWORD 现在表示 32bit 无符号整数,即使以后 Windows 升级到64位,DWORD 仍然是 32bit 无符号整数(也许以后的 long 不是32bit了,只需要重新定义一下 DWORD 就可以了)。对于那些直接和位数有关的整数,最好不用 int, long, short 之类的类型,因为这些类型的位数可能不确定(比如,在16位程序里,int 是16位的,在32位程序里,int 是32位的,谁知道在以后的64位程序里,int 是多少位,long 又是多少位)。用重新定义的类型就没有这方面的问题了,最多到时候修改一下定义就可以了,而不需要在程序里一行一行的查找

http://blog.csdn.net/godsight/article/details/53039483

以上是关于word或dword区别的主要内容,如果未能解决你的问题,请参考以下文章

转:VC中WORD,DWORD,unsigned long,unsigned short的区别(转)

汇编中byte,word,dword的问题

DWORD 是表示32位那它和int型有区别吗

word-wrapwhite-space和word break的区别

解析位图文件时,如何替换 WORD 和 DWORD 数据类型?

让 gcc 将一系列 BYTE 比较转换为 WORD/DWORD/QWORD