Ответ 1
Предположим, что вы реализуете библиотеку, и вы ничего не знаете о том, что ваши вызывающие лица могут выполнять среду с плавающей запятой, прежде чем вызывать код. Они могут разоблачить исключение и установить собственный обработчик ловушки, который вызывает деление на ноль для получения значения 42. Предположим, что ваша библиотека зависит от поведения по умолчанию IEEE-754 для деления на ноль. Функция feholdexcept
предоставляет вам средства для обеспечения соблюдения этого поведения. Окружение вызывающего абонента, в комплекте со своим незамасленным исключением, может быть восстановлено с помощью функции fesetenv
.
Это, по общему признанию, довольно неясный краеугольный случай использования, но, откровенно говоря, все в fenv.h
довольно неясно большинству программистов.