feholdexcept () в C / C ++
Опубликовано: 30 Декабря, 2021
Функция feholdexcept () в C / C ++ сначала сохраняет текущее окружение с плавающей запятой в объекте fenv_t, а затем сбрасывает текущие значения всех флагов состояния с плавающей запятой. Функция feholdexcept () определена в заголовочном файле cfenv в C ++ и в заголовочном файле fenv.h в C.
Синтаксис:
интервал feholdexcept (fenv_t * envp)
Параметры: функция принимает единственный обязательный параметр envp, который является указателем на объект.
типа fenv_t, в котором хранится текущий статус среды с плавающей запятой.
Возвращаемое значение: функция возвращает значение типа int при двух условиях:
- Если функция завершилась успешно, возвращается 0.
- В случае неудачи возвращает ненулевое целое число.
Программы ниже иллюстрируют вышеуказанную функцию.
Программа 1:
Программа 2:
// C++ program to illustrate the // feholdexcept() function #include <bits/stdc++.h> #pragma STDC FENV_ACCESS on using namespace std; // function to print raised exceptions void raised_exceptions() { cout << "Exceptions raised are : " ; if (fetestexcept(FE_DIVBYZERO)) cout << " FE_DIVBYZERO
" ; else if (fetestexcept(FE_INVALID)) cout << " FE_INVALID
" ; else if (fetestexcept(FE_OVERFLOW)) cout << " FE_OVERFLOW
" ; else if (fetestexcept(FE_UNDERFLOW)) cout << " FE_UNDERFLOW
" ; else cout << " No exception found
" ; return ; } // Driver code int main() { // environment variable fenv_t envp; // raise certain exceptions feraiseexcept(FE_DIVBYZERO); // print the raised exception raised_exceptions(); // saves and clears current // exceptions by feholexcept function feholdexcept(&envp); // no exception found raised_exceptions(); // restores the previously // saved exceptions feupdateenv(&envp); raised_exceptions(); return 0; } |
Выход:
Поднятые исключения: FE_DIVBYZERO Возникшие исключения: Исключения не обнаружены. Поднятые исключения: FE_DIVBYZERO
Хотите учиться на лучших видео и практических задачах, ознакомьтесь с Базовым курсом C для базового и продвинутого C.