/QIfist (_ftol unterdrücken)

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

Syntax

/QIfist

Bemerkungen

Hinweis

/QIfist ist nur im Compiler für x86 verfügbar. Diese Compileroption ist in den Compilern für x64 oderARM nicht verfügbar.

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. Bei Verwendung von /QIfist gilt diese Garantie nicht mehr. 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)

Sie können die funktion _control87, _controlfp, __control87_2 C-Laufzeit verwenden, um das Rundungsverhalten der FPU zu ändern. Der Standardmäßige Rundungsmodus der FPU lautet "Auf die nächste Richtung". Die Verwendung von /QIfist kann die Leistung Ihrer Anwendung verbessern, aber nicht ohne Risiko. Sie sollten die Teile Ihres Codes, die für Rundungsmodi vertraulich sind, gründlich testen, bevor Sie auf Code zurückgreifen, der mit "/QIfist " in Produktionsumgebungen erstellt wurde.

/arch (x86) und /QIfist können nicht auf demselben Kompiland verwendet werden.

Hinweis

/QIfist ist standardmäßig nicht wirksam, da sich die Rundungsbits auch auf Gleitkommarunden auswirken (was nach jeder Berechnung auftritt). Wenn Sie also die Flags für das Runden im C-Stil (in Richtung Null) festlegen, können ihre Gleitkommaberechnungen unterschiedlich sein. /QIfist sollte nicht verwendet werden, wenn Ihr Code vom erwarteten Verhalten des Abschneidens des Bruchteils der Gleitkommazahl abhängt. Wenn Sie unsicher sind, verwenden Sie nicht /QIfist.

Die Option "/QIfist " ist ab Visual Studio 2005 veraltet. Für den Compiler wurde die Geschwindigkeit der Konvertierung von Gleitkommatyp in ganzzahligen Typ deutlich erhöht. Eine Liste der veralteten Compileroptionen finden Sie unter veraltete und entfernte Compileroptionen in den nach Kategorie aufgeführten Compileroptionen.

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

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

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

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

/Q-Optionen (Vorgänge auf niedriger Ebene)
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile