Share via


/QIfist (Supprimer _ftol)

Action déconseillée. Supprime l'appel de la fonction d'assistance _ftol quand la conversion d'un type à virgule flottante vers un type intégral est requise.

Syntaxe

/QIfist

Notes

Remarque

/QIfist est disponible uniquement dans le compilateur ciblant x86 ; cette option de compilateur n’est pas disponible dans les compilateurs ciblant x64 ouARM.

Outre la conversion d’un type à virgule flottante en type intégral, la _ftol fonction garantit que le mode d’arrondi de l’unité à virgule flottante (FPU) est vers zéro (tronquer), en définissant les bits 10 et 11 du mot de contrôle. Cela garantit que la conversion d’un type à virgule flottante en type intégral se produit comme décrit par la norme ANSI C (la partie fractionnaire du nombre est dis carte ed). Lorsque vous utilisez /QIfist, cette garantie ne s’applique plus. Le mode arrondi sera l’un des quatre tels que documentés dans les manuels de référence Intel :

  • Arrondir vers la plus proche (même nombre s’il est équidistant)

  • Arrondi vers l’infini négatif

  • Arrondi vers l’infini positif

  • Arrondi vers zéro

Vous pouvez utiliser la fonction _control87, _controlfp, __control87_2 C Run-Time pour modifier le comportement d’arrondi du FPU. Le mode d’arrondi par défaut du FPU est « Arrondi vers la plus proche ». L’utilisation de /QIfist peut améliorer les performances de votre application, mais pas sans risque. Vous devez tester soigneusement les parties de votre code qui sont sensibles aux modes d’arrondi avant de vous appuyer sur le code généré avec /QIfist dans les environnements de production.

/arch (x86) et /QIfist ne peuvent pas être utilisés sur la même compilation.

Remarque

/QIfist n’est pas en vigueur par défaut, car les bits arrondis affectent également l’arrondi à virgule flottante (qui se produit après chaque calcul), de sorte que lorsque vous définissez les indicateurs pour l’arrondi de style C (vers zéro), vos calculs à virgule flottante peuvent être différents. /QIfist ne doit pas être utilisé si votre code dépend du comportement attendu de troncation de la partie fractionnaire du nombre à virgule flottante. Si vous n’êtes pas sûr, n’utilisez pas /QIfist.

L’option /QIfist est déconseillée à partir de Visual Studio 2005. Le compilateur a apporté des améliorations significatives à la vitesse de conversion float à int. Pour obtenir la liste des options de compilateur déconseillées, consultez Options de compilateur déconseillées et supprimées dans les options du compilateur répertoriées par catégorie.

Pour définir cette option du compilateur dans l'environnement de développement Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

  2. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.

  3. Tapez l'option de compilateur dans la zone Options supplémentaires .

Pour définir cette option du compilateur par programmation

Voir aussi

/Q, options (Opérations de bas niveau)
Options du compilateur MSVC
Syntaxe de la ligne de commande du compilateur MSVC