-1
我有很多與GCC編譯器優化級別有關的問題。有時我的C例程的行爲在將編譯級別設置得更高時會發生顯着變化,並且它們不能按預期工作。 GCC編譯器是Atollic TrueStudio IDE的一部分。如何在改變編譯器優化級別(C編程)後保護不可預知行爲的功能?
有沒有人可以給我這個話題的建議?解決這類問題的通用方法是什麼?
我很抱歉,如果我不是100%準確。
我有很多與GCC編譯器優化級別有關的問題。有時我的C例程的行爲在將編譯級別設置得更高時會發生顯着變化,並且它們不能按預期工作。 GCC編譯器是Atollic TrueStudio IDE的一部分。如何在改變編譯器優化級別(C編程)後保護不可預知行爲的功能?
有沒有人可以給我這個話題的建議?解決這類問題的通用方法是什麼?
我很抱歉,如果我不是100%準確。
編寫更好的代碼。正確的代碼不會改變不同優化級別的行爲。
避免:
使用編譯器警告,短消息和其他靜態分析工具來幫助您查找代碼中的錯誤(或者,當然,還可以調試打開優化時看到的問題)。
你能發表一個例子嗎?如果您正在編寫可移植代碼,則優化應該也不會改變代碼的行爲。唯一發生的情況是,如果GCC優化器中存在錯誤,或者您正在編寫非標準的C代碼。 –
將警告設置爲最大值,讀取它們並在無法調試時使用printf。您的代碼可能存在像未初始化的變量一樣的問題... –
您的代碼中存在錯誤,或者優化器中存在錯誤。發佈您的代碼,以便我們可以確定它們中的哪一個。 –