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
.
Требования
Function | Заголовок C | Заголовок C++ |
---|---|---|
fetestexcept |
<fenv.h> | <cfenv> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
См. также
Справочник по алфавитной функции
feclearexcept
feraiseexcept