/QIfist (_ftol unterdrücken)
Unterdrückt den Aufruf der _ftol-Hilfsfunktion, wenn eine Konvertierung von einem Gleitkommatyp zu einem ganzzahligen Typ erforderlich ist.
/QIfist
Hinweise
Hinweis
/QIfist ist nur im Compiler verfügbar, der auf x86 abzielt. Diese Compileroption steht nicht in Compilern zur Verfügung, die auf x64 oder ARM abzielen.
Durch die _ftol-Funktion wird nicht nur ein Gleitkommatyp in einen ganzzahligen Typ konvertiert, sondern ist auch gewährleistet, dass die Gleitkommaeinheit (Floating-Point Unit, FPU) gegen 0 (null) rundet (abschneidet), indem die Bits 10 und 11 des Steuerworts entsprechend festgelegt werden. Dadurch wird garantiert, dass die Konvertierung eines Gleitkommatyps in einen ganzzahligen Typ wie im ANSI C-Standard durchgeführt wird, dass also der Teil nach dem Komma verworfen wird. Wenn Sie /QIfist verwenden, ist dies nicht mehr sichergestellt. Das Rundungsverhalten entspricht einem der vier im Intel-Referenzmaterial dokumentierten Modi:
Runden auf die nächste Maschinenzahl (auf eine gerade Zahl bei gleichem Abstand)
Runden in Richtung minus unendlich
Runden in Richtung plus unendlich
Runden in Richtung Null (0)
Mit der _control87, _controlfp, __control87_2-C-Laufzeitfunktion können Sie das Rundungsverhalten der FPU ändern. Die Standardeinstellung der FPU ist "Runden auf die nächste Maschinenzahl". Mithilfe von /QIfist kann die Leistung der Anwendung erhöht werden, jedoch nicht ohne Risiko. Die Teile des Codes, bei denen Rundungsmodi eine Rolle spielen, sollten gründlich getestet werden, bevor Sie sich in einer Produktionsumgebung auf Code verlassen, der mit /QIfist erstellt wurde.
/arch (x86) und /QIfist dürfen nicht in derselben Kompiliereinheit verwendet werden.
Hinweis
In der Standardeinstellung ist /QIfist deaktiviert, da die gerundeten Bits auch das Runden von Gleitkomma auf Gleitkomma (das in jeder Berechnung auftritt) betreffen. Wenn Sie daher die Flags auf das Runden im C-Format (gegen Null) festlegen, führen die Gleitkommaberechnungen unter Umständen zu einem anderen Ergebnis./QIfist sollte nicht verwendet werden, wenn der Code auf der erwarteten Kürzung des Bruchteils der Gleitkommazahl aufbaut.Verwenden Sie /QIfist im Zweifelsfall nicht.
/QIfist ist veraltet. Für den Compiler wurde die Geschwindigkeit der Konvertierung von Gleitkommatyp in ganzzahligen Typ deutlich erhöht. Weitere Informationen finden Sie unter Deprecated Compiler Options.
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.
Klicken Sie auf den Ordner C/C++.
Klicken Sie auf die Eigenschaftenseite Befehlszeile.
Geben Sie die Compileroption im Feld Zusätzliche Optionen ein.
So legen Sie diese Compileroption programmgesteuert fest
- Siehe AdditionalOptions.