關於Linux下C編譯錯誤(警告)cast from 'void*' to 'int' loses precision


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

那句話的意思是從 void* 到 int 的轉換丟失精度,相信看到解釋有些人就明白了,

此問題只會出現在X64位的Linux上,因為在64位的機器上指針占用8個字節,int 占用四個字節,所以才會出現這樣的問題,

解決方法:

(long)ptr == -1 就好了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM