共用方式為


/QIfist (抑制 _ftol)

更新:2007 年 11 月

在必須從浮點型別轉換為整數型別時,抑制 Helper 函式 _ftol

/QIfist

備註

注意事項:

/QIfist 僅供以 x86 為目標的編譯器使用,這個編譯器選項不提供以 x64 或 Itanium 為目標的編譯器使用。

除了從浮點型別轉換為整數型別之外,_ftol 函式也會透過設定控制字的第 10 和 11 位元,以確保浮點單位 (FPU) 的捨入模式是趨向於零,這樣可以保證從浮點型別到整數型別的轉換會依據 ANSI C 標準 (捨去數字的小數部分) 的描述進行。使用 /QIfist 時,此一保證即不再適用。捨入模式必須為 Intel 參考手冊中所載以下四種模式中的某一種:

  • 趨向最接近者捨入 (如果等距離則為偶數)

  • 趨向負無限大捨入

  • 趨向正無限大捨入

  • 趨向零捨入

您可以使用 _control87, _controlfp, __control87_2 C Run-Time 函式,修改 FPU 的捨入行為。FPU 的預設捨入模式為「趨向最接近者捨入」。使用 /QIfist 可以提升應用程式的效能,但是也有風險。在生產環境中信賴以 /QIfist 建置 (Build) 的程式碼之前,您應該先徹底測試程式碼中受捨入模式影響的各個部分。

/arch (最小 CPU 架構)/QIfist 不能用於同一個編譯中。

注意事項:

/QIfist 並非預設運作,因為捨入位元也會影響浮點而進行浮點捨入 (這種捨入作業在每次計算之後都會進行),所以設定 C-style (趨向零) 捨入的旗標時,浮點計算可能會不同;如果程式碼依賴預期截斷浮點數小數部分的行為而運作,就不應該使用 /QIfist。如果不確定,就不要使用 /QIfist

在 Visual C++ 2005 中,/QIfist 已遭取代。編譯器已大幅提升將浮點 (Float) 轉換成 int 的速度。如需詳細資訊,請參閱 Visual C++ 2005 中已被取代的編譯器選項

若要在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。如需詳細資訊,請參閱 HOW TO:開啟專案屬性頁

  2. 按一下 [C/C++] 資料夾。

  3. 按一下 [命令列] 屬性頁。

  4. 在 [其他選項] 方塊中,輸入編譯器選項。

若要以程式方式設定這個編譯器選項

請參閱

參考

/Q 選項 (低階運算)

編譯器選項

設定編譯器選項