Ц ++ фегетекцептфлаг () - Ц ++ стандардна библиотека

Функција фегетекцептфлаг () у Ц ++-у добива заставе за изузеће са помичним зарезом наведене у аргументу екцептс и чува је у тачки наведеној флагп-ом.

Функција фетгетекцептфлаг () је дефинисана у датотеци заглавља.

прототип фегетекцептфлаг ()

 инт фегетекцептфлаг (фекцепт_т * флагп, инт изузеци);

Изузеци од аргумента могу бити битни ИЛИ макронаредби за изузеће са помичним зарезом.

фегетекцептфлаг () Параметри

  • флагп: Показивач на фекцепт_т објекат где ће се заставе чувати.
  • изузеци: Битмаск списак заставица за изузеће које треба добити.
Битмаск је прихватио макронаредбе
Макро Тип Опис
ФЕ_ДИВБИЗЕРО Погрешка пола Дељење са нулом
ФЕ_ИНЕКСАЦТ Нетачно Нису тачни резултати као што је (1.0 / 3.0)
ФЕ_ИНВАЛИД Грешка домена Најмање један коришћени аргумент је вредност за коју функција није дефинисана
ФЕ_ОВЕРФЛОВ Грешка у опсегу преливања Резултат је превелике величине да би га могао представити тип повратка
ФЕ_УНДЕРФЛОВ Грешка опсега подлива Резултат је премале величине да би га могао представити тип повратка
ФЕ_АЛЛ_ЕКСЦЕПТ Сви изузеци Сви изузеци подржани имплементацијом

фегетекцептфлаг () Повратна вредност

  • Функција фегетекцептфлаг () враћа нулу на успех, у супротном није нула.

Пример: Како функционише функција фегетекцептфлаг ()?

 #include #include #pragma STDC FENV_ACCESS ON using namespace std; void print_exceptions() ( cout << "Raised exceptions: "; if(fetestexcept(FE_ALL_EXCEPT)) ( if(fetestexcept(FE_DIVBYZERO)) cout << "FE_DIVBYZERO "; if(fetestexcept(FE_INEXACT)) cout << "FE_INEXACT "; if(fetestexcept(FE_INVALID)) cout << "FE_INVALID "; if(fetestexcept(FE_OVERFLOW)) cout << "FE_OVERFLOW "; if(fetestexcept(FE_UNDERFLOW)) cout << "FE_UNDERFLOW "; ) else cout << "None"; cout << endl; ) int main() ( fexcept_t excepts; feraiseexcept(FE_DIVBYZERO); /* save current state*/ fegetexceptflag(&excepts,FE_ALL_EXCEPT); print_exceptions(); feraiseexcept(FE_INVALID|FE_OVERFLOW); print_exceptions(); /* restoring previous exceptions */ fesetexceptflag(&excepts,FE_ALL_EXCEPT); print_exceptions(); return 0; )

Када покренете програм, излаз ће бити:

 Повећани изузеци: ФЕ_ДИВБИЗЕРО Повећани изузеци: ФЕ_ДИВБИЗЕРО ФЕ_ИНВАЛИД ФЕ_ОВЕРФЛОВ Повећани изузеци: ФЕ_ДИВБИЗЕРО

Занимљиви Чланци...