fegetexceptflag
Сохраняет текущее состояние указанных флагов исключений с плавающей запятой.
Синтаксис
int fegetexceptflag(
fexcept_t* pstatus,
int excepts
);
Параметры
pstatus
Указатель на объект fexcept_t
, содержащий текущие значения флагов исключений, определяемых функцией excepts
.
excepts
Флаги исключений с плавающей запятой, которые требуется сохранить в pstatus
.
Возвращаемое значение
При успешном выполнении возвращает 0. В противном случае возвращается ненулевое значение.
Замечания
Функция fegetexceptflag
сохраняет текущее состояние флагов состояния исключения с плавающей запятой, заданное с помощью функции excepts
, в объекте fexcept_t
, на который указывает pstatus
. Указатель pstatus
должен указывать на допустимый объект fexcept_t
. В противном случае последующее поведение функции будет неопределенным. Функция fegetexceptflag
поддерживает эти макросы исключений, определенные в <fenv.h>:
Макрос исключения | Description |
---|---|
FE_DIVBYZERO |
При выполнении предыдущей операции с плавающей запятой произошла ошибка сингулярности или полюса, в результате чего было получено бесконечное значение. |
FE_INEXACT |
Функция принудительно округлила сохраненный результат ранее выполненной операции с плавающей запятой. |
FE_INVALID |
Ошибка домена в ранее выполненной операции с плавающей запятой. |
FE_OVERFLOW |
Ошибка диапазона. Ранее выполненная операция с плавающей запятой возвратила слишком большое значение, которое не удается представить. |
FE_UNDERFLOW |
Ранее выполненная операция с плавающей запятой возвратила слишком малое значение, которое не удается представить с полной точностью. Создано денормализованное значение. |
FE_ALL_EXCEPT |
Побитовая операция ИЛИ для всех поддерживаемых исключений с плавающей запятой. |
Аргумент excepts
может быть равен нулю. Кроме того, он может определяться с помощью поддерживаемого макроса исключения с плавающей запятой, а также побитовой операции ИЛИ для нескольких макросов. Действие любого другого значения аргумента не определено.
Чтобы использовать эту функцию, необходимо отключить оптимизацию вычислений с плавающей запятой, которая может препятствовать доступу. Для этого следует использовать директиву #pragma fenv_access(on)
перед вызовом. Дополнительные сведения см. в разделе fenv_access
.
Требования
Function | Заголовок C | Заголовок C++ |
---|---|---|
fegetexceptflag |
<fenv.h> | <cfenv> |
Дополнительные сведения о совместимости см. в разделе Совместимость.