C programlama dilindeki float değerlerle ilgili matematiksel işlemler yapmakta kullanılan bazı fonksiyon ve veri türü tanımlamaları C99 standartları ile birlikte standart kütüphaneye katılan fenv.h başlık dosyasında tanımlanmıştır.
Fonksiyonlar
| Fonksiyon adı | Açıklama |
|---|---|
| feclearexcept (C99) |
int feclearexcept(int excepts); Tanımlanan float değer durum değerlerini temizler. |
| fegetenv (C99) |
int fegetenv(fenv_t* envp); Geçerli float değer ortamının durum değerlerini bir yapı değişkenine kaydeder. |
| fegetexceptflag (C99) |
int fegetexceptflag(fexcept_t* flagp, int excepts); Mevcut durum bayraklarını yükler. |
| fegetround (C99) |
int fegetround(); Float değer aktif yuvarlama yöntemini okur. |
| feholdexcept (C99) |
int feholdexcept(fenv_t* envp); Geçerli float değer ortamını kaydeder ve tüm istisnaları siler. |
| feraiseexcept (C99) |
int feraiseexcept(int excepts); Float değer istisnası oluşturur. |
| fesetenv (C99) |
int fesetenv(const fenv_t* envp); Float değer ortamının durum değerlerini bir yapı veri türü değişkeninden yükler. |
| fesetexceptflag (C99) |
int fesetexceptflag(const fexcept_t* flagp, int excepts); Mevcut durum bayraklarını ayarlar. |
| fesetround (C99) |
int fesetround(int round); Geçerli yuvarlama yönünü ayarlar. |
| fetestexcept (C99) |
int fetestexcept(int excepts); Belirli istisnaların devreye girip girmediğini test eder. |
| feupdateenv (C99) |
int feupdateenv(const fenv_t* envp); Float değer ortamını geri yükler, ancak mevcut istisnaları korur. |
Makro sabitler
| Sabit grubu | Sabit adı | Açıklama | |
|---|---|---|---|
| İstisnalar (C99) | FE_INVALID | Geçersiz argüman istisnası | |
| FE_DENORMAL | Normal | ||
| FE_DIVBYZERO | Kutup hata istisnası | ||
| FE_OVERFLOW | Aşırı akış aralığı hatası istisnası | ||
| FE_UNDERFLOW | Düşük akış aralığı hatası istisnası | ||
| FE_INEXACT | Hatalı sonuç istisnası | ||
| FE_ALL_EXCEPT | Tüm istisnalar. | ||
| Yuvarlama (C99) | FE_DOWNWARD | Aşağı yuvarlama | |
| FE_TONEAREST | En yakın değere | ||
| FE_TOWARDZERO | Sıfıra yuvarlama | ||
| FE_UPWARD | Yukarı yuvarlama | ||
| Tüm ortam (C99) | FE_DFL_ENV | Geçerli ortam | |
| Pragma'lar (C99) | FENV_ACCESS | Float değer ortamına giriş |
Veriler
| Veri türü adı | Değeri | Açıklama |
|---|---|---|
| fenv_t |
typedef struct
{
unsigned short __control_word;
unsigned short __unused0;
unsigned short __status_word;
unsigned short __unused1;
unsigned short __tag_word;
unsigned short __unused2;
unsigned int __ip_offset;
unsigned short __ip_selector;
unsigned short __opcode;
unsigned int __data_offset;
unsigned short __data_selector;
unsigned short __unused3;
unsigned int __mxcsr;
} fenv_t;
|
Float veri ortam veri türü (structure) |
| fexcept_t |
typedef unsigned short |
Float veri ortam veri türü (unsigned short) |