cast from ‘void*’ to ‘int’ loses precision

本文探讨了在libevent编程中遇到的问题,包括如何安全地转换void*指针以打印地址,以及在回调函数中正确处理event_set参数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写libevent程序,想打印一下回调函数中参数的地址,所以使用reinterpret_cast将void*转换为int,但是一直报“cast from ‘void*’ to ‘int’ loses precision”,看了一下,虽然使用的操作系统是64位的,但是gcc定义的int还是32位的,所以由上面的报错,将void*转换为long后报警消失。

另外event_set中参数是值传输,所以为了在回调函数中安全的使用此参数,要在堆上申请空间,结束时要delete防止内存泄露。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值