如何去除64位指针赋给int时的编译警告?

ycf128 2010-01-05 01:31:16
在64位机编程时,原来在32位机有把指针赋给int的用法,可在64机会出现指针截断的问题,出现大片的警告,怎么才能避免这些警告呢?
...全文
316 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 ycf128 的回复:]
在64位机编程时,原来在32位机有把指针赋给int的用法,可在64机会出现指针截断的问题,出现大片的警告,怎么才能避免这些警告呢?
[/Quote]
原来的做法本来就有问题,还要避免警告?
改程序吧!
deep_pro 2010-01-06
  • 打赏
  • 举报
回复
强制类型转换行不通的
64位的指针说截就截,怎么可能
ycf128 2010-01-06
  • 打赏
  • 举报
回复
恩,谢谢各位的高见,看来程序还得在64位兼容性上下功夫。
gql1123 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wenxy1 的回复:]
强制转换类型。
[/Quote]
Wenxy1 2010-01-05
  • 打赏
  • 举报
回复
强制转换类型。
jiangfeng999 2010-01-05
  • 打赏
  • 举报
回复
还不如自己声明一个指针类型 64位时为long32位是为int

#ifdef 64_BIT
typedef POINT u_int64_t
#elseif 32_BIT
typedef POINT u_int32_t
不动如岳 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 deep_pro 的回复:]
原来的赋值给int的程序,本身就是有bug的
long才是同cpu字长一样的,指针一定要用long保存
[/Quote]
对对对,指针都是long型的,只不过32机器上,long和int都是4个字节
deep_pro 2010-01-05
  • 打赏
  • 举报
回复
原来的赋值给int的程序,本身就是有bug的
long才是同cpu字长一样的,指针一定要用long保存

23,224

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧