0

我有一個相當複雜的算法,我正在使用visual c 2008和visual c 2010構建。當我在VC 2010中啓用優化進行編譯時,該算法生成的輸出錯誤(具體來說, OG)。Visual C 2008年和2010年之間的優化差異

在VC 2008中構建相同的確切代碼(有或沒有優化)或者在VC2010中沒有進行優化會產生一個正確行爲的算法。

我在調試啓用優化的代碼時非常困難,並且已經停留了很長一段時間。有沒有人知道不同版本的優化有什麼不同?

+6

這通常發生在調用未定義的行爲時。即使「與另一個編譯器一起工作」,你也有可能出錯。 – cnicutar

+1

生成的代碼是否緩慢,還是會產生錯誤的結果?你的措辭並不完全清楚,新的優化將未定義的行爲引起人們的注意並非聞所未聞。 – delnan

+0

您可能想要通過Windows世界中相當於valgrind的方式運行您的程序。 –

回答

0

它可能是一個編譯器錯誤,但您應該嘗試/ Wall以啓用所有警告並修復所有警告。還有運行時檢查/ RTCu(未初始化的本地使用情況檢查),您可以使用它來隔離問題。還要檢查代碼中的所有類型鑄件以確保它們是合法的。

相關問題