/QIfist (Supprimer _ftol)

Mise à jour : novembre 2007

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

/QIfist

Notes

Remarque :

/QIfist n'est disponible que dans le compilateur ciblant x86 ; cette option du compilateur n'est pas disponible dans les compilateurs ciblant x64 ou Itanium.

Outre la conversion d'un type en virgule flottante vers un type intégral, la fonction _ftol assure un mode d'arrondi de l'unité en virgule flottante (FPU) à zéro (troncature), en positionnant les bits 10 et 11 du mot de commande. La conversion d'un type en virgule flottante vers un type intégral se produit ainsi comme décrit par la norme C ANSI (la partie fractionnaire du nombre est supprimée). Lors de l'utilisation de /QIfist, cette garantie ne s'applique plus. Le mode d'arrondi sera l'un des quatre modes documentés dans les manuels de référence d'Intel :

  • Arrondi au plus près (nombre pair si équidistant)

  • Arrondi vers infini négatif

  • Arrondi vers infini positif

  • Arrondi à zéro

Vous pouvez utiliser la fonction runtime C _control87, _controlfp, __control87_2 pour modifier le comportement d'arrondi de l'unité en virgule flottante (FPU). Le mode d'arrondi par défaut de la FPU est l'« arrondi au plus près ». L'utilisation de /QIfist peut améliorer les performances de votre application, mais non sans risque. Vous devez tester complètement les portions de votre code qui sont sensibles aux modes d'arrondi avant de vous fier au code généré à l'aide de /QIfist dans des environnements de production.

/arch (Architecture d'UC minimale) et /QIfist ne peuvent pas être utilisés sur le même module (compiland).

Remarque :

L'option /QIfist n'est pas activée par défaut, car les bits d'arrondi affectent également l'opération virgule flottante/arrondi virgule flottante (qui se produit après chaque calcul), de sorte que lorsque vous définissez les indicateurs de l'arrondi dans le style du langage C (à zéro), les calculs en virgule flottante peuvent être différents. /QIfist ne doit pas être utilisée si votre code dépend du comportement attendu de la troncature de la partie fractionnaire du nombre à virgule flottante. Si vous avez des doutes, évitez d'utiliser /QIfist.

Dans Visual C++ 2005, /QIfist est désapprouvé. Le compilateur a apporté des améliorations considérables à la vitesse de conversion de int vers float. Pour plus d'informations, consultez Options du compilateur désapprouvées dans Visual C++ 2005.

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 Comment : ouvrir les pages de propriétés d'un projet.

  2. Cliquez sur le dossier C/C++.

  3. Cliquez sur la page de propriétés Ligne de commande.

  4. Spécifiez l'option du compilateur dans la zone Options supplémentaires.

Pour définir cette option du compilateur par programme

Voir aussi

Référence

/Q (Opérations de bas niveau), options

Options du compilateur

Définition des options du compilateur