Spec-Zone.ru › C

Среда с плавающей запятой

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

Доступ к среде с плавающей запятой и ее изменение имеют смысл только тогда, когда #pragma STDC FENV_ACCESS установлено в ON. В противном случае реализация свободна предполагать, что режимы управления с плавающей запятой всегда являются значениями по умолчанию, а флаги состояния с плавающей запятой никогда не проверяются и не изменяются. На практике немногие современные компиляторы, такие как HP aCC, Oracle Studio и IBM XL, явно поддерживают #pragma, но большинство компиляторов все же позволяют осмысленно обращаться к среде с плавающей запятой.

Типы

Определено в заголовке <fenv.h>
fenv_t Тип, представляющий всю среду с плавающей запятой
fexcept_t Тип, представляющий все флаги состояния с плавающей запятой коллективно

Функции

feclearexcept
(C99)
очищает указанные флаги состояния с плавающей запятой
(функция)
fetestexcept
(C99)
определяет, какие из указанных флагов состояния с плавающей запятой установлены
(функция)
feraiseexcept
(C99)
поднимает указанные исключения с плавающей запятой
(функция)
fegetexceptflagfesetexceptflag
(C99)(C99)
копирует состояние указанных флагов состояния с плавающей запятой из или в среду с плавающей запятой
(функция)
fegetroundfesetround
(C99)(C99)
получает или устанавливает направление округления
(функция)
fegetenvfesetenv
(C99)
сохраняет или восстанавливает текущую среду с плавающей запятой
(функция)
feholdexcept
(C99)
сохраняет среду, очищает все флаги состояния и игнорирует все будущие ошибки
(функция)
feupdateenv
(C99)
восстанавливает среду с плавающей запятой и поднимает ранее поднятые исключения
(функция)

Макросы

FE_ALL_EXCEPTFE_DIVBYZEROFE_INEXACTFE_INVALIDFE_OVERFLOWFE_UNDERFLOW
(C99)
исключения с плавающей запятой
(макроконстанта)
FE_DOWNWARDFE_TONEARESTFE_TOWARDZEROFE_UPWARD
(C99)
направление округления с плавающей запятой
(макроконстанта)
FE_DFL_ENV
(C99)
среда с плавающей запятой по умолчанию
(макроконстанта)

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2023):
    • 7.6 Среда с плавающей запятой <fenv.h> (стр.: TBD)
    • 7.31.4 Среда с плавающей запятой <fenv.h> (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.6 Среда с плавающей запятой <fenv.h> (стр.: 150-156)
    • 7.31.4 Среда с плавающей запятой <fenv.h> (стр.: 332)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.6 Среда с плавающей запятой <fenv.h> (стр.: 206-215)
    • 7.31.4 Среда с плавающей запятой <fenv.h> (стр.: 455)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.6 Среда с плавающей запятой <fenv.h> (стр.: 187-196)

См. также

Документация C++ для Floating-point environment

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/fenv

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API