c语言的int类型转换为(void *)类型

直接看代码

将int型转为void *类型后,再将void *类型转为int类型,gcc编译的时候会报警告如下

结果还是能运行成功的

(void *)i=0xf

&i=0x7fff14e4de7c

(int)(void *)i=15

这是在学习多线程的socket编程时遇到的一个问题,pthread_create函数的最后一个参数是void类型,在给子线程传accept函数生成的客户端描述符时,不能直接传地址,因为线程工作在同一进程空间,与主线程是连通的,参数都能互相访问与操作,如果传了客户端描述符地址去子线程,当主线程又收到一个新的客户端,生成一个新的客户端描述符时,前面创建的传进子线程的客户端描述符就会变为新生成的这个描述符,这是不合理的,所以,应该将描述符这个值转为void *传进去,就得将int转换为void *,这在多线程中有很大的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值