Преобразование формата целочисленных типов:
inttypes.h (С99)
В заголовочном файле inttypes.h определено несколько макросов, которые могут использоваться в качестве спецификаторов формата для расширенных целочисленных типов. Более подробно это обсуждается в разделе VI приложения. В данном заголовочном файле также объявлен следующий тип:
imaxdiv_t
Этот тип представляет собой структуру, представляющую возвращаемое значение функции idivmax().
Справочные материалы 857
В inttypes.h также включен заголовочный файл stdint.h и объявлено несколько функций, которые работают с наиболее широким целочисленным типом, объявленным в stdint.h как intmax. Функции перечислены в табл. B.V. 10.
Таблица 6.V.10. Функции для работы с наиболее широким целочисленным типом
Альтернативное написание: iso646.h
Заголовочный файл iso646.h предоставляет 11 макросов, которые расширяются в указанные операции (табл. B.V.ll).
Таблица 6.V.11. Альтернативное написание
Локализация: locale.h
Локальная установка (или локаль) — это группа настроек, которые управляют такими элементами, как символ, используемый для представления десятичной точки. Локальные установки сохраняются в структуре типа struct lconv, которая определена в заголовочном файле locale.h. Локальная установка может быть задана строкой, которая указывает определенный набор значений для членов структуры. Стандартная локальная установка обозначается строкой "С". В табл. B.V.ll перечислены функции локализации с кратким описанием каждой из них.
858 Приложение Б
Таблица 6.V.12. Функции локализации
Возможными значениями параметра locale при вызове setlocaleO могут быть "С", что принято по умолчанию, и что представляет собственную среду, определенную реализацией. Реализация может определять дополнительные локальные установки. Возможные значения параметра category при вызове setlocale() представлены макросами, которые перечислены в табл. B.V.13.
Таблица 6.V.13. Макросы категорий
В табл. B.V14 перечислены обязательные члены структуры struct lconv. Таблица 6.V.14. Обязательные члены структуры struct lconv
860 Приложение Б
Математическая библиотека: math.h
В стандарте С99 внутри заголовочного файла math.h определены два типа:
float_t double_t
Эти типы по ширине, но меньшей мере, соответствуют типам float и double, a double t — по меньшей мере, типу float_t. Они предназначены для того, чтобы служить типами, обеспечивающими наиболее эффективные вычисления с данными
float и double.
В math.h также определено несколько макросов, которые описаны в табл. Б.У15; все они кроме HUGE_VAL добавлены стандартом С99. Некоторые из них более подробно обсуждаются в разделе VIII приложения.
Таблица 6.V.15. Макросы в math.h
Справочные материалы 861
Окончание табл. Б. У. /5
Математические функции обычно работают со значениями типа double. В стандарте С99 были добавлены версии float и long double этих функций, что отмечается дополнением их имен соответственно суффиксами f и 1. Например, теперь доступны следующие прототипы:
double sin(double);
float sinf(float);
long double sinl(long double);