Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сохраняет текущее состояние указанных флагов исключений с плавающей запятой.
Синтаксис
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> |
Дополнительные сведения о совместимости см. в разделе Совместимость.