fenv.h er header-filen for standard C - biblioteket , der indeholder deklarationen af datatyper til arbejde med flydende kommatal . [en]
Header-filen erklærer typerne fenv_tog fexcept_t. [1] Typen fenv_tgiver et miljø til at arbejde med flydende kommatal. Det fungerer med floating point-statusflag og administrerer platformsspecifikke tilstande. [en]
Header-filen erklærer følgende konstanter: [1]
FE_DIVBYZERO
FE_INEXACT
FE_INVALID
FE_OVERFLOW
FE_UNDERFLOW
FE_ALL_EXCEPT
FE_DOWNWARD
FE_TONEAREST
FE_TOWARDZERO
FE_UPWARD
FE_DFL_ENV
En makro FE_ALL_EXCEPTer defineret, hvis følgende konstanter er defineret samtidigt: FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW.
Makroerne FE_DOWNWARD, FE_TONEAREST,, FE_TOWARDZEROer FE_UPWARDdefineret, hvis platformen understøtter at få og ændre afrundingsretningen med hensyn til funktionerne fegetround()og fesetround().
Makroen FE_DFL_ENVrepræsenterer standardmiljøet med flydende komma.
De anførte funktioner nulstiller undtagelsesflag ( feclearexcept) og indstiller dem ( feraiseexcept), skriv ( fesetexceptflag) og få ( fegetexceptflag) maskinspecifikke statusflag, og kontroller, om flagene er indstillet ( fetestexcept).
Funktionerne får og indstiller den makro, der er ansvarlig for afrundingsretningen.
Funktionerne henter floating point-miljøet, gemmer det i en variabel, indstiller den nye værdi og opdaterer det i overensstemmelse hermed.
Direktivet fortæller miljøet (eller kompilatoren), at dette stykke kode har adgang til platformspecifikke statusflag for operationer på type float. [2]
Eksempel:
#include <fenv.h> ugyldig f ( dobbelt x ) { #pragma STDC FENV_ACCESS ON void g ( double ); void h ( dobbelt ); /*...*/ g ( x + 1 ); h ( x + 1 ); /*...*/ }Funktionen gog funktion hkan afhænge af statusflag eller bivirkninger fra operationer x+1. [2]