这是因为Linux 64位系统上指针类型占用8个字节,而int类型占用4个字节,所以会出现loses precision(转换精度丢失)。
可以先将int* 转成long类型,long类型可以隐式类型转换到int类型,如下:
int func() { int *p; p = //赋值 return (long)p; }
这样就不会报编译错误了。