Fenv.h

A fenv.h  a szabványos C könyvtár fejlécfájlja , amely a lebegőpontos számokkal való munkavégzéshez szükséges adattípusok deklarációját tartalmazza . [egy]

Adattípusok

A fejlécfájl deklarálja a típusokat fenv_tés a fexcept_t. [1] A típus fenv_tkörnyezetet biztosít a lebegőpontos számokkal való munkavégzéshez. Lebegőpontos állapotjelzőkkel működik, és platform-specifikus módokat kezel. [egy]

Makró

A fejlécfájl a következő állandókat deklarálja: [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

A makró FE_ALL_EXCEPTakkor van definiálva, ha a következő állandók egyidejűleg vannak definiálva: FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW.

FE_DOWNWARDA , FE_TONEAREST, makrók akkor FE_TOWARDZEROvannak FE_UPWARDmegadva, ha a platform támogatja a kerekítési irány lekérését és megváltoztatását a fegetround()és függvények tekintetében fesetround().

A makró FE_DFL_ENVaz alapértelmezett lebegőpontos környezetet képviseli.

Funkciók

Kivételek

#include <fenv.h> int feclearexcept ( int kivételek ); int fegetexceptflag ( fexcept_t * flagp , int kivételek ); int feraiseexcept ( int kivételek ); int feseteexceptflag ( const fexcept_t * flagp , int kivételek ); int fetestexcept ( int kivételek );

A felsorolt ​​függvények alaphelyzetbe állítják a kivételjelzőket ( feclearexcept) és beállítják őket ( feraiseexcept), írnak ( fesetexceptflag) és kapnak ( fegetexceptflag) gépspecifikus állapotjelzőket, és ellenőrzik, hogy a jelzők be vannak-e állítva ( fetestexcept).

Kerekítés

#include <fenv.h> int fegetround ( void ); int fesetround ( int round );

A függvények megkapják és beállítják a kerekítési irányért felelős makrót.

Környezeti támogatás

#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 );

A függvények megkapják a lebegőpontos környezetet, változóban tárolják, beállítják az új értéket, és ennek megfelelően frissítik.

Fordítói irányelvek

#include <fenv.h> #pragma STDC FENV_ACCESS be-ki-kapcsoló

Az irányelv közli a környezettel (vagy a fordítóval), hogy ez a kódrészlet platform-specifikus állapotjelzőket ér el a típusú műveletekhez float. [2]

Példa:

#include <fenv.h> void f ( double x ) { #pragma STDC FENV_ACCESS ON void g ( double ); void h ( double ); /*...*/ g ( x + 1 ); h ( x + 1 ); /*...*/ }

A gand függvény viselkedése az hállapotjelzőktől vagy a műveletek mellékhatásaitól függhet x+1. [2]

Jegyzetek

  1. 1 2 3 4 fenv.h. _ Letöltve: 2010. július 2. Az eredetiből archiválva : 2009. május 19.
  2. 12 ISO/IEC 9899: 1999 . Letöltve: 2011. július 30. Az eredetiből archiválva : 2011. augusztus 22..