簡體   English   中英

GCC用-O0和-O2給出不同的數值結果

[英]GCC giving different numerical results with -O0 and -O2

我正在使用4.1.2。 有沒有人對我的代碼中最好的地方有任何想法? 有共同原因的經驗? 有一些丑陋的指針轉換(即,d =(double)(*(float *)p),其中p是指向int的指針)我正在努力消除,但還沒有運氣。
對於它的價值,-O0給出了正確的答案。 謝謝你的幫助。

我將檢查嚴格的別名問題,如下所示: http//www.cellperformance.com/mike_acton/2006/06/understanding_strict_aliasing.html

如果不知道你的代碼究竟做了什么,提到“丑陋的指針轉換”會讓我懷疑是否存在別名問題。

如果你提供了一些證明問題的代碼,它對你有幫助,並使我們更容易回答。

謝謝大家,-fno-strict-aliasing(由幾個人建議)解決了我的問題。 感謝你的幫助。
獲得的經驗:始終使用警告標志進行編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM