红联Linux门户
Linux帮助

关于Linux下C编译错误(警告)cast from 'void*' to 'int' loses

发布时间:2015-09-28 10:01:33来源:linux网站作者:braveheart4217

放上出错的代码:

char *ptr;  //此后省略部分代码   
if( (int)ptr==-1 )  //出错地方 


那句话的意思是从 void* 到 int 的转换丢失精度,相信看到解释有些人就明白了,此问题只会出现在X64位的Linux上,因为在64位的机器上指针占用8个字节,int 占用四个字节,所以才会出现这样的问题,


解决方法:

(long)ptr == -1 就好了。


Linux源码安装GCC编译器:http://www.linuxdiyf.com/linux/7348.html