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


feholdexcept

Сохраняет текущую среду с плавающей запятой в указанном объекте, очищает флаги состояний с плавающей запятой и, если это возможно, переводит среду с плавающей запятой в режим без остановки.

Синтаксис

int feholdexcept(
   fenv_t *penv
);

Параметры

penv
Указатель на объект fenv_t, содержащий копию среды с плавающей запятой.

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

Возвращает ноль только в том случае, если функция способна успешно включить непрерывную обработку исключений с плавающей запятой.

Замечания

Функция feholdexcept используется для сохранения состояния текущей среды с плавающей запятой в объект fenv_t, на который указывает penv, и настройки среды таким образом, чтобы при возникновении исключений с плавающей запятой выполнение не прерывалось. Этот режим называется режимом без остановки. Этот режим продолжается до тех пор, пока среда не будет восстановлена с помощью fesetenv или feupdateenv.

Эту функцию можно использовать в начале подпрограммы, который должна скрывать от вызывающей стороны одно или несколько исключений с плавающей запятой. Чтобы сообщить об исключении, можно очистить нежелательные исключения с помощью , feclearexceptа затем завершить режим без остановки вызовом feupdateenv.

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

Требования

Function Заголовок C Заголовок C++
feholdexcept <fenv.h> <cfenv>

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

См. также

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