fesetexceptflag
Définit les indicateurs d’état à virgule flottante spécifiés dans l’environnement à virgule flottante actuel.
Syntaxe
int fesetexceptflag(
const fexcept_t *pstatus,
int excepts
);
Paramètres
pstatus
Pointeur vers un fexcept_t
objet contenant les valeurs pour définir les indicateurs d’état d’exception. L’objet peut être défini par un appel précédent à fegetexceptflag
.
excepts
Indicateurs d’état d’exception de virgule flottante à définir.
Valeur retournée
Si tous les indicateurs d’état d’exception spécifiés sont définis correctement, retourne 0. Sinon, elles retournent une valeur différente de zéro.
Notes
La fonction fesetexceptflag
définit l’état des indicateurs d’état d’exception de virgule flottante spécifiés par excepts
sur les valeurs correspondantes définies dans l’objet fexcept_t
désigné par pstatus
. Elle ne déclenche pas les exceptions. Le pointeur pstatus
doit désigner un objet fexcept_t
valide ; sinon, le comportement suivant n’est pas défini. La fesetexceptflag
fonction prend en charge ces valeurs de macro d’exception dans excepts
, définies dans <fenv.h> :
Macros d’exception | Description |
---|---|
FE_DIVBYZERO |
Une erreur de singularité ou de pôle s’est produite dans une opération à virgule flottante précédente ; une valeur infinie a été créée. |
FE_INEXACT |
La fonction a été forcée d’arrondir le résultat stocké d’une opération à virgule flottante précédente. |
FE_INVALID |
Une erreur de domaine s’est produite pendant une opération à virgule flottante précédente. |
FE_OVERFLOW |
Une erreur de plage s’est produite ; le résultat d’une opération à virgule flottante précédente était trop grand pour être représenté. |
FE_UNDERFLOW |
Le résultat d’une opération à virgule flottante précédente était trop petit pour être représenté avec une précision complète ; une valeur dénormalisée a été créée. |
FE_ALL_EXCEPT |
Opération OR au niveau du bit de toutes les exceptions de virgule flottante prises en charge. |
L’argument excepts
peut être zéro, l’une des macros d’exception de virgule flottante prises en charge ou l’opération OR au niveau du bit d’au moins deux macros. L’effet de toute autre valeur d’argument est indéfini.
Pour utiliser cette fonction, vous devez désactiver les optimisations à virgule flottante qui peuvent empêcher l’accès à l’aide de la directive #pragma fenv_access(on)
avant l’appel. Pour plus d’informations, consultez fenv_access
.
Spécifications
Fonction | En-tête C | En-tête C++ |
---|---|---|
fesetexceptflag |
<fenv.h> | <cfenv> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.