正如你在圖片中看到的,rotCount是1.0f。 但是,在將rotCount與0.0f, 進行比較時,調試器會輸入if語句,這不應該發生。
我使用默認調試模式的Visual Studio 2010關閉優化。 這是拆開這段代碼。
看來,fcomp之後,沒有測試和跳轉匯編代碼生成。 這是否被視爲VS2010中的錯誤?有人知道爲什麼
正如你在圖片中看到的,rotCount是1.0f。 但是,在將rotCount與0.0f, 進行比較時,調試器會輸入if語句,這不應該發生。
我使用默認調試模式的Visual Studio 2010關閉優化。 這是拆開這段代碼。
看來,fcomp之後,沒有測試和跳轉匯編代碼生成。 這是否被視爲VS2010中的錯誤?有人知道爲什麼
在if語句結尾處有分號,所以if不控制塊。刪除它
我喜歡這個問題是如何得到一堆upvotes,第二個你回答他們都來到這裏:p – yamafontes
@KepaniHaole「一堆」== 1? – Shoe
答案是個好地方:我盯着反彙編器一分鐘,看不到它。在此之前,這個問題似乎很有趣。 – Bathsheba
程序的屏幕截圖在問題中不適用。他們打破可用性和複製粘貼。 –
我學到的一件事:當你認爲你已經發現了一個編譯器錯誤,然後以幾乎與1無法區分的概率,這是你自己代碼中的一個錯誤。 – molbdnilo
@molbdnilo除了談論MSVC時。 –