我知道鑄造ints到浮動(反之亦然)是相當昂貴的。但是,編譯器會自動在代碼中爲常量自動執行它嗎?對於例如有C++自動將常量整型轉換爲浮點型?
float y = 123;
float x = 1/y;
和
float y = 123.f;
float x = 1.f/y;
我看到一些代碼,不會後者之間的任何差別,但我不知道這是否是爲優化或安全問題(即只是確保鴻溝即使y碰巧是一個int也是浮點)。我用gcc
(因爲答案可能是編譯器特定的。)
此外,任何指向什麼樣的編譯器,不能在一般的優化列表,將不勝感激。謝謝!
不知道是不是肯定的 - 但我敢打賭它是真正的錢。 – 2009-09-14 06:34:04
現在的問題是你微觀優化?編譯器應該處理這個。 – 2009-09-14 06:36:54
我通常使用浮點文字寫出fp表達式。在你被一個沒有發生浮動的計算所困擾之後,你可能會得到一個類似的習慣。 – SingleNegationElimination 2009-09-14 06:39:49