Fenv.h

fenv.h  er header-filen for standard C - biblioteket , der indeholder deklarationen af ​​datatyper til arbejde med flydende kommatal . [en]

Datatyper

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]

Makro

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.

Funktioner

Undtagelser

#include <fenv.h> int feclearexcept ( int excepts ); int fegetexceptflag ( fexcept_t * flagp , int excepts ); int feraiseexcept ( int excepts ); int fesetexceptflag ( const fexcept_t * flagp , int excepts ); int fetestexcept ( int excepts );

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).

Afrunding

#include <fenv.h> int fegeround ( tomrum ); int fesetround ( int runde );

Funktionerne får og indstiller den makro, der er ansvarlig for afrundingsretningen.

Miljøstøtte

#include <fenv.h> int fegetenv ( fenv_t * envp ); int feholdexcept ( fenv_t * envp ); int fesetenv ( const fenv_t * envp ); int feupdateenv ( const fenv_t * envp );

Funktionerne henter floating point-miljøet, gemmer det i en variabel, indstiller den nye værdi og opdaterer det i overensstemmelse hermed.

Kompilerdirektiver

#include <fenv.h> #pragma STDC FENV_ACCESS tænd-sluk-kontakt

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]

Noter

  1. 1 2 3 4 fenv.h. _ Hentet 2. juli 2010. Arkiveret fra originalen 19. maj 2009.
  2. 12 ISO/IEC 9899: 1999 . Hentet 30. juli 2011. Arkiveret fra originalen 22. august 2011.