word或dword区别

在看C/C++的书或者试题时,有时会见到利用word或dword定义的变量,第一次看到的时候并不知其是什么,更不用说word或dword占几个字节了。幸好在VC安装文件夹下有相关的定义。如C:Program FilesMicrosoft VisualStudioVC98Include查看头文件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

原文地址:https://www.cnblogs.com/ZHENGJUNupperclassman/p/7753023.html