关于网友提出的“ Linux 64位系统,将8字节数据转换为4字节数据”问题疑问,本网通过在网上对“ Linux 64位系统,将8字节数据转换为4字节数据”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: Linux 64位系统,将8字节数据转换为4字节数据
描述: 最近在开发大华的SDK,但是在调用设置回调函数那部分只能向回调函数传入unsigned int 类型的数据,我想传入的是指针数据,也就是类的this指针,这个怎么破!!!
CLIENT_SetRealDataCallBackEx(lRealPlayHandle, RealDataCallBackEx, (DWORD)1, 0x01);
解决方案1: 看了标题,不清楚为何做这种舍去高位的转换,这不是安全的转换,4到8才是正道,做产品不是炫耀技术,再说,根本无法彻底解决问题。因为4位无法表示8位所能表示的所有值,就是解决了,也引入很多限制,不利于后续的维护,也是比较别扭。
解决方案2: 估计没法弄吧,4字节怎么传8字节啊。
除非你自己想办法做一个映射。你把8字节的数据转换为4字节,例如从1开始编号。回调你的时候,你自己查映射表,还原出真实的8字节数据。
以上介绍了“ Linux 64位系统,将8字节数据转换为4字节数据”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3666422.html