日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

gcc在64位系统上一个史诗级WARNING

發布時間:2025/3/15 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gcc在64位系统上一个史诗级WARNING 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如下圖所示,可以看到y的地址在傳入函數并被返回后,高32位被截斷了,于是發生了Segment fault。

首次是在MAC OS X上發現的,本以為是MAX OS X編譯器自己的策略,后來在64位Ubuntu上測試結果一樣。

?

究其原因,我們可以看到“assignment makes pointer from integer without a cast [-Wint-conversion]”,意思就是該函數把默認int轉給地址變量了,然而不幸的是64位系統的地址不是int能裝的下的。

解決問題其實很簡單,只要老老實實把函數聲明寫到頭文件(.h)里,然后在.c文件里include就可以了。

寫頭文件雖然是個規范性的動作,但是很多工程師圖方便,尤其是在嵌入式領域,常常有些官方庫文件都不帶.h。于是導致一些莫名其妙的崩潰,最后自己崩潰了。

特此記錄。

轉載于:https://www.cnblogs.com/ansersion/p/10789635.html

總結

以上是生活随笔為你收集整理的gcc在64位系统上一个史诗级WARNING的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。