社区
Linux/Unix社区
帖子详情
如何去除64位指针赋给int时的编译警告?
ycf128
2010-01-05 01:31:16
在64位机编程时,原来在32位机有把指针赋给int的用法,可在64机会出现指针截断的问题,出现大片的警告,怎么才能避免这些警告呢?
...全文
342
8
打赏
收藏
如何去除64位指针赋给int时的编译警告?
在64位机编程时,原来在32位机有把指针赋给int的用法,可在64机会出现指针截断的问题,出现大片的警告,怎么才能避免这些警告呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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保存
64位
int
占几个字节_谨慎在C++中用
int
C++两大原罪:有符号整数和无符号整数混用32位整型和
64位
整型混用99+warnings关我什么事,能跑就行。以下这么长,概括起来一句话:这个整型变量会参与到地址运算吗?(对于整型变量这非常常见,例如用作数组以及stl的索引),如果是,那么不要用
int
了。原标题说的很绝对,引来了不少没仔细看就开怼的朋友们。为了营造和谐氛围,应该说是“不要乱用
int
”,或者说是“不要在
64位
平台上用
int
索引”。...
64位
系统上,
指针
的大小(通常是8字节)与
int
的大小(通常是4字节)不同
指针
强制转换为
int
或从
int
强制转换为
指针
时
,会导致数据丢失
在
64位
系统上,
指针
的大小(通常是8字节)与
int
的大小(通常是4字节)不同在
64位
系统上,
指针
的大小(通常是8字节)与
int
的大小(通常是4字节)不同
指针
强制转换为
int
或从
int
强制转换为
指针
时
,会导致数据丢失,
编译
器会发出
警告
C语言中,可以使用
int
ptr_t或u
int
ptr_t来存储
指针
的值,这些类型定义在std
int
.h头文件中,可以确保
指针
转换
时
不会丢失数据。// 使用u
int
ptr_t存储
指针
值。
64位
int
占几个字节_记
64位
地址截断引发的挂死问题
前言最近要将整个项目的代码从原先的只支持32位变成同
时
支持32位和
64位
,这个过程中遇到一个很不容易定位的挂死问题,花了不少
时
间才定位解决,因此分享给大家。32位和
64位
代码区别在分享之前,需要了解一下32位和
64位
程序代码有何区别,它的主要区别体现在某些数据类型的占用字节大小的不同:数据类型32位
64位
long4字节8字节unsigned long4字节8字节
指针
4字节8字节size_t4字节8...
编译
32位_记
64位
地址截断引发的挂死问题
前言最近要将整个项目的代码从原先的只支持32位变成同
时
支持32位和
64位
,这个过程中遇到一个很不容易定位的挂死问题,花了不少
时
间才定位解决,因此分享给大家。32位和
64位
代码区别在分享之前,需要了解一下32位和
64位
程序代码有何区别,它的主要区别体现在某些数据类型的占用字节大小的不同:数据类型32位
64位
long4字节8字节unsigned long4字节8字节
指针
4字节8字节size_t4字节8...
为什么你的C程序在
64位
系统上崩溃?size_t与
int
类型错配揭秘
解决
64位
系统崩溃难题,深入剖析C语言size_t与
int
类型转换问题。涵盖数组索引、内存操作等常见场景,揭示类型错配隐患及安全转换方法。提升程序稳定性,值得收藏。
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章