WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Стандартная библиотека
языка программирования С

fenv.h — заголовочный файл стандартной библиотеки языка Си, содержащий объявление типов данных для работы с числами с плавающей запятой.[1]

Типы данных

Заголовочный файл объявляет типы fenv_t и fexcept_t.[1] Тип fenv_t предоставляет окружение для работы с числами с плавающей запятой. Оно работает с флагами состояния для работы с числами с плавающей запятой и управляет платформо-зависимыми режимами.[1]

Макрос

Заголовочный файл объявляет следующие константы:[1]

FE_DIVBYZERO

FE_INEXACT

FE_INVALID

FE_OVERFLOW

FE_UNDERFLOW

FE_ALL_EXCEPT

FE_DOWNWARD

FE_TONEAREST

FE_TOWARDZERO

FE_UPWARD

FE_DFL_ENV

Макрос FE_ALL_EXCEPT определена если одновременно определены следующие константы: FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW.

Макросы FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD определены если платформа поддерживает получение и изменение направления округления в терминах функций fegetround() и fesetround().

Макрос FE_DFL_ENV представляет умалчиваемое окружение вычислений с плавающей точкой.

Функции

Исключения

#include <fenv.h>
int feclearexcept(int excepts);
int fegetexceptflag(fexcept_t *flagp, int excepts);
int feraiseexcept(int excepts);
int fesetexceptflag(const fexcept_t *flagp, int excepts);
int fetestexcept(int excepts);

Перечисленные функции сбрасывают флаги исключений (feclearexcept) и устанавливают их (feraiseexcept), записывают (fesetexceptflag) и получают (fegetexceptflag) машинно-зависимые флаги состояний и производят проверку установки флагов (fetestexcept).

Округление

#include <fenv.h>
int fegetround(void);
int fesetround(int round);

Функции получают и устанавливают макрос, отвечающий за направление округления.

Поддержка окружения

#include <fenv.h>
int fegetenv(fenv_t *envp);
int feholdexcept(fenv_t *envp);
int fesetenv(const fenv_t *envp);
int feupdateenv(const fenv_t *envp);

Функции получают окружение для вычислений с плавающей точкой, сохраняют его в переменной, устанавливают новое значение и обновляют его соответственно.

Директивы компилятора

#include <fenv.h>
#pragma STDC FENV_ACCESS on-off-switch

Директива сообщает окружению (или компилятору), что эта часть кода обращается к платформо-зависимым флагам состояния для операций с типом float.[2]

Пример:

#include <fenv.h>
void f (double x)
{
   #pragma STDC FENV_ACCESS ON
   void g (double);
   void h (double);
   /*...*/
   g(x+1);
   h(x+1);
   /*...*/
}

Поведение функции g и h может зависеть от флагов состояния или побочных эффектов от операций x+1.[2]

Примечания

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии