Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

La librairie <fenv.h> (C99 - <cfenv> en C++11)

Exceptions en virgule flottante


Le terme fenv signifie « Floating point ENVironment ». Cette librairie, introduite par le standard C99, donne accès à l'environnement de calcul en virgule flottante : indicateurs d'exception, directions d'arrondi et sauvegarde/restauration de l'environnement courant.

Les fonctions de cette librairie sont surtout utiles pour du code numérique sensible : vérification d'un débordement, contrôle d'une division par zéro, changement temporaire de mode d'arrondi ou conservation des indicateurs d'erreur autour d'un calcul.

POSIX reprend cette entête pour s'aligner sur le standard C ISO. Il n'y a donc pas, pour <fenv.h>, de fonction POSIX supplémentaire comparable à ce que l'on trouve dans d'autres entêtes.

Entête à inclure

#include <fenv.h>  // <cfenv> en C++

Le contenu de cette librairie

La table suivante récapitule les principaux éléments proposés par <fenv.h>. Les nouveautés C23 sont indiquées explicitement, car elles ne sont pas encore disponibles partout.

Nom Type Description Depuis
__STDC_VERSION_FENV_H__ macro Indique la version de l'entête <fenv.h>. C23
fexcept_t type Représente un état sauvegardé d'indicateurs d'exception. C99
fenv_t type Représente l'environnement dynamique complet en virgule flottante. C99
femode_t type Représente les modes de contrôle dynamiques de l'environnement flottant. C23
FE_* macros Décrivent les indicateurs d'exception flottante. C99/C23
FE_* macros Décrivent les directions d'arrondi. C99/C23
FE_DEC_* macros Décrivent les directions d'arrondi pour les flottants décimaux. C23
FE_DFL_ENV macro Représente l'environnement flottant installé au démarrage du programme. C99
FE_DFL_MODE macro Représente l'état par défaut des modes de contrôle dynamiques. C23
FENV_ACCESS pragma Informe le compilateur que le code manipule l'environnement flottant. C99
FENV_ROUND pragma Permet de fixer une direction d'arrondi constante pendant la traduction. C23
FENV_DEC_ROUND pragma Equivalent décimal du pragma FENV_ROUND. C23
feclearexcept, fegetexceptflag, feraiseexcept, fesetexcept, fesetexceptflag, fetestexcept, fetestexceptflag fonctions Permettent de gérer les indicateurs d'exception. C99/C23
fegetround, fesetround fonctions Permettent de consulter ou modifier la direction d'arrondi dynamique. C99
fegetenv, fegetmode, feholdexcept, fesetenv, fesetmode, feupdateenv fonctions Permettent de sauvegarder, restaurer ou mettre à jour l'environnement flottant. C99/C23
fe_dec_getround, fe_dec_setround fonctions Permettent de gérer la direction d'arrondi des flottants décimaux. C23

Pages disponibles

Arrondis décimaux
Arrondis binaires
Environnement flottant
Exceptions en virgule flottante
Pragmas de contrôle
Version de l'entête


Exceptions en virgule flottante




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé