Поделиться через


fetestexcept

Определяет, какие из указанных флагов состояний исключения с плавающей запятой в настоящее время заданы.

Синтаксис

int fetestexcept(
   int excepts
);

Параметры

excepts
Побитовая операция ИЛИ для флагов состояний с плавающей запятой, которые требуется проверить.

Возвращаемое значение

В случае успешного выполнения возвращает битовую маску, содержащую побитовую операцию ИЛИ для макросов исключений с плавающей запятой, которая соответствует установленным в данный момент флагам состояний исключения. Если исключения не заданы, возвращает 0.

Замечания

Чтобы определить исключения, которые были вызваны операцией с плавающей запятой, используйте функцию fetestexcept. Чтобы указать флаги состояний исключения, которые требуется проверить, используйте параметр excepts. Функция fetestexcept использует эти макросы исключений, определенные в <fenv.h> и excepts возвращаемое значение:

Макрос исключения Description
FE_DIVBYZERO При выполнении предыдущей операции с плавающей запятой произошла ошибка сингулярности или полюса, в результате чего было получено бесконечное значение.
FE_INEXACT Функция принудительно округлила сохраненный результат ранее выполненной операции с плавающей запятой.
FE_INVALID Ошибка домена в ранее выполненной операции с плавающей запятой.
FE_OVERFLOW Ошибка диапазона. Ранее выполненная операция с плавающей запятой возвратила слишком большое значение, которое не удается представить.
FE_UNDERFLOW Ранее выполненная операция с плавающей запятой возвратила слишком малое значение, которое не удается представить с полной точностью. Создано денормализованное значение.
FE_ALL_EXCEPT Побитовая операция ИЛИ для всех поддерживаемых исключений с плавающей запятой.

Аргумент excepts может быть равен 0. Кроме того, он может определяться с помощью поддерживаемого макроса исключения с плавающей запятой, а также побитовой операции ИЛИ для нескольких макросов. Действие любого другого значения аргумента excepts не определено.

Чтобы использовать эту функцию, необходимо отключить оптимизацию вычислений с плавающей запятой, которая может препятствовать доступу. Для этого следует использовать директиву #pragma fenv_access(on) перед вызовом. Дополнительные сведения см. в разделе fenv_access.

Требования

Функция Заголовок C Заголовок C++
fetestexcept <fenv.h> <cfenv>

Дополнительные сведения о совместимости см. в разделе Совместимость.

См. также

Справочник по алфавитной функции
feclearexcept
feraiseexcept