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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DWORD 是表示32位那它和int型有区别吗相关的知识,希望对你有一定的参考价值。

比如 DWORD CClient::RecvDataThread(void* pParam)可以换成
int CClient::RecvDataThread(void* pParam) 吗?

long 32位有符号整数
int 32位有符号整数
DWORD 32位无符号整数

typedef unsigned long DWORD;

DWORD 一般用于返回值不会有负数的情况。

到底是用 int 还是 DWORD,要看具体情况。

例如你的 RecvDataThread 想用 -1 表示接收出错(Socket 函数很多也是用 -1 (SOCKET_ERROR) 的返回值代表失败,那么就应该用 int 返回值类型。
参考技术A 数据类型不相同,当然有区别了。

DWORD是双精度类型,可以存放带精度的数值,比如123456.789。
int是整数类型,只能存放整数类型,如123,-34567.
参考技术B int在16位机上是16位
32位机上是32位
...

typedef unsigned long DWORD;
参考技术C DWORD在哪里都是32位
INT不是!所以DWORD用的多!
有人问过一下问题

我发现有人用DWORD保存端口号,为什么不用int保存端口号呢?
难道linux下面没有int吗?还是c下面没有int?

关于int 跟unsigned int 取值 范围

i nt的取值范围 为什么-32768 ~32767 int 取值不是 16位 那应该是-65535~65535 还有 unsigned int 为什么最大值65535 而 int是32767不是 都是16位整形吗

在内存中占16位,而且是以2进制形式,16位,是指二进制有16个位数比如1111 1111 1111 1111 表示65535,带符号的,有一个标志位是决定变量的正负,0111 1111 1111 1111和1111 1111 1111 1111就表示负正,其中一位表示符号位,其他15位表示值,不知道你理解了吗,表达不是很好,希望对你有帮助。 参考技术A int:基本整型,当字节数为2时 取值范围为-32768~32767,当字节数为4时 取值范围
负的2的31次方 到 2的31次方减1
unsigned int:无符号基本整型,当字节数为2时 取值范围为0~6535,当字节数为4时 取值范围为0到2的32次方减1
参考技术B java没有无符号类型。int类型的取值范围也不是-32768-----32767,这是shot类型。
int类型看这个
http://zhidao.baidu.com/question/176374554.html?sort=6&old=1&afterAnswer=1#reply-box-1243080946

以上是关于DWORD 是表示32位那它和int型有区别吗的主要内容,如果未能解决你的问题,请参考以下文章

float和int都是32位,为什么表示范围不同?还有long和int又什么区别?

c#中int向float型转换。

flash as3.0中int和Number的区别

struct 与 class 的区别

VB中Integer(整型)和Long(长整型)有啥区别?

结构体与类