×
Traktatov.net » Язык программирования C [Лекции и упражнения, 6-е изд.] » Читать онлайн
Страница 529 из 557 Настройки

Директива

#pragma STDC FENV_ACCESS on включает доступ к этой среде, а директива

#pragma STDC FENV_ACCESS off

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

В заголовочном файле fenv.h определены два типа, показанные в табл. B.V.6.

Таблица 6.V.6. Типы в fenv.h


В заголовочном файле fenv.h также определены макросы, представляющие несколько возможных исключений плавающей запятой и управляющих состояний. Реализации могут определять дополнительные макросы, назначая им имена, которые начинаются с FE_ и состоят из заглавных букв. В табл. B.V.7 приведены стандартные макросы исключений.


Справочные материалы 853

Таблица 6.V.7. Макросы в fenv.h


В табл. B.V.8 показаны прототипы стандартных функций из заголовочного файла fenv.h. Обратите внимание, что очень часто значения аргументов и возвращаемые значения соответствуют макросам из табл. B.V.7. Например, FE_UPWARD является подходящим аргументом для feset round().

Таблица 6.V.8. Прототипы в fenv.h



854 Приложение Б

Окончание табл. б. У. 8


Характеристики среды плавающей запятой: float.ь

В заголовочном файле float.h определено несколько макросов, представляющих разнообразные пределы и параметры. Эти макросы перечислены в табл. B.V.9; добавления, появившиеся в С11, выделены курсивом. Многие макросы имеют отношение к следующей модели представления с плавающей запятой:


Если самая первая цифра/>; является ненулевой (и х отлично от нуля), то такое число называется нормализованным числом с плавающей запятшм. Соответствующие объяснения приведены в разделе VIII этого приложения, в том числе и для ряда показанных макросов.

Таблица 6.V.9. Макросы в fenv.li



Справочные материалы 855

Продолжение табл. Б,У.9

Макрос

Описание

DBL_DECIMAL_DIG

Количество десятичных цифр для double, которые могут быть преобразованы из основания b в основание 10 и обратно в основание b без изменения значения (минимальное значение — 10)

LDBL_DECIMAL_DIG

Количество десятичных цифр для long double, которые могут быть преобразованы из основания b в основание 10 и обратно в основание b без изменения значения (минимальное значение — 10)

DECIMAL_DIG

Количество десятичных цифр для самого широкого поддерживаемого типа с плавающей запятой, которые могут быть преобразованы из основания b в основание 10 и обратно в основание b без изменения значения (минимальное значение — 10)

FLT_DIG

Количество десятичных цифр для float, которые могут быть преобразованы из основания 10 в основание b и обратно в основание 10 без изменения значения (минимальное значение — 6)

DBL_DIG

Количество десятичных цифр для double, которые могут быть преобразованы из основания 10 в основание b и обратно в основание 10 без изменения значения (минимальное значение — 10)

LDBL_DIG

Количество десятичных цифр для long double, которые могут быть преобразованы из основания 10 в основание b и обратно в основание 10 без изменения значения(минимальное значение — 10)