/QIfist (_ftol unterdrücken)

Aktualisiert: November 2007

Unterdrückt den Aufruf der Hilfsfunktion _ftol, wenn eine Konvertierung von einem Gleitkommatyp in einen ganzzahligen Typ erforderlich ist.


/QIfist

6d9xx1d2.alert_note(de-de,VS.90).gifHinweis:

/QIfist ist nur im Compiler verfügbar, der auf x86 abzielt. Diese Compileroption steht nicht in Compilern zur Verfügung, die auf x64 oder Itanium 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 Steuerwortes entsprechend festgelegt werden. Dadurch wird garantiert, dass die Konvertierung eines Gleitkommatyps zu einem 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

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 (Minimale CPU-Architektur) und /QIfist dürfen nicht in derselben Kompiliereinheit verwendet werden.

6d9xx1d2.alert_note(de-de,VS.90).gifHinweis:

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.

In Visual C++ 2005 ist /QIfist veraltet. Für den Compiler wurde die Geschwindigkeit der Konvertierung von Gleitkommatyp in ganzzahligen Typ deutlich erhöht. Weitere Informationen finden Sie unter Veraltete Compileroptionen in Visual C++ 2005.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.

  2. Klicken Sie auf den Ordner C/C++.

  3. Klicken Sie auf die Eigenschaftenseite für die Befehlszeile.

  4. Geben Sie die Compileroption im Feld Zusätzliche Optionen ein.

So legen Sie diese Compileroption programmgesteuert fest

Community-Beiträge

Anzeigen: