今天看BITMAP的数据结构说明,发现了DWORD和LONG,还以为LONG要更大一些,原来,对于32位的机子,二者都是32位的,4个字节,只不过LONG有一位被用来做符号位。
typedef long LONG;
typedef unsigned long DWORD;
据说 数据位数和编译器有关。
在32位系统中,LONG和DWORD都是32位的,区别在于LONG包含符号位。DWORD是无符号整数,范围从0到4294967295,而LONG是带符号的,范围为-2147483648到2147483647。在Ubuntu的32位环境下,测试表明int、long的位宽均为4字节。文章还提到了在不同的编译器和平台上,数据类型位宽可能有所不同。
今天看BITMAP的数据结构说明,发现了DWORD和LONG,还以为LONG要更大一些,原来,对于32位的机子,二者都是32位的,4个字节,只不过LONG有一位被用来做符号位。
typedef long LONG;
typedef unsigned long DWORD;
据说 数据位数和编译器有关。
578

被折叠的 条评论
为什么被折叠?