Bildirim
int fetestexcept(int excepts); (C99)
Açıklama
Float değer ortam değerlerinin hangisinin devrede olduğunu belirler.
Parametreler
excepts: Test edilecek istisna değerlerini gösterir.
Dönüş değeri
Devrede olan tüm istisna değerlerini içeren int bir değer geri döndürür.
Örnek
#include <stdio.h>
#include <stdlib.h>
#include <fenv.h>
void Test_Except(int idsonuc);
int main(void) {
div_t dv;
float fd1=36.54, fd2=9.63;
feclearexcept (FE_ALL_EXCEPT);
dv = div(fd1, fd2);
Test_Except(fetestexcept(FE_ALL_EXCEPT));
return 0;
}
void Test_Except(int idsonuc)
{
printf("İşlem hata bildirimi:");
if (idsonuc==0) printf(" Yok"); // 0 (0x00)
if (idsonuc==FE_INVALID) printf(" FE_INVALID"); // 1 (0x01)
if (idsonuc==FE_DENORMAL) printf(" FE_DENORMAL"); // 2 (0x02)
if (idsonuc==FE_DIVBYZERO) printf(" FE_DIVBYZERO"); // 4 (0x04)
if (idsonuc==FE_OVERFLOW) printf(" FE_OVERFLOW"); // 8 (0x08)
if (idsonuc==FE_UNDERFLOW) printf(" FE_UNDERFLOW"); // 16 (0x10)
if (idsonuc==FE_INEXACT) printf(" FE_INEXACT"); // 32 (0x20)
printf("\n");
}
Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar:
İşlem hata bildirimi: FE_INEXACT
Yukarıdaki program, tüm istisnaları temizledikten sonra int değerlerle çağrılan div() fonksiyonunun oluşturduğu hatayı fetestexcept() fonksiyonu ile ekrana yazar.