870 Приложение Б
Типы с максимальной шириной
В заголовочном файле stdint.h также определены типы с максимальной шириной. Переменная такого типа может содержать любое целочисленное значение, возможное для системы, с учетом знака. Эти типы перечислены в табл. BV.29.

Целые числа, которые могут хранить значения указателей
В заголовочном файле stdint.h также определены два целочисленных типа (табл. B.V.30), которые могут точно хранить значения указателей. Другими словами, если переменной одного из таких типов присвоить значение типа void *, а затем присвоить значение этой переменной обратно указателю, то информация не теряется. В конкретной реализации может отсутствовать любой из этих типов или же оба.
Таблица 6.V.30. Целочисленные типы для хранения значений указателей

Определенные константы
В заголовочном файле stdint.h также определены константы, представляющие предельные значения для типов, которые определены в этом файле. Константы названы по именам типов. Чтобы получить имя константы, представляющей минимальное или максимальное значение данного типа, возьмите имя типа, замените _t на _МАХ или _MIN и переведите все символы в верхний регистр. Например, наименьшим значением для типа int32_t является INT32_MIN, а наибольшим значением для типа uint_fastl6_t — UINT_FAST16_MAX. В табл. B.V.31 приведена сводка по эти константам (N обозначает количество битов), а также по константам, относящимся к типам intptr_t, uintptr_t, intmax_t и intmax_t. Величины этих констант будут равны или превышать (если только не указано “в точности”) перечисленные значения.
Таблица 6.V.31. Целочисленные константы
Идентификатор константы
минимальное значение
NTN MIN
В точности -(2*-’ - 1)
NTN МАХ
В точности 2"-' - 1
INTN_MAX
В точности 2 N- 1
NT LEASTN MIN
-(2"-' - 1)
NT_LEASTN_MAX
_ 1
INT_LEASTN_MAX
2 N- 1
NT_FASTN_MIN
~[2 N' - 1)

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

В этом заголовочном файле также определены некоторые константы для типов, определенных где-то в других местах. Они перечислены в табл. B.V.32.
Расширенные целочисленные константы
В заголовочном файле stdint.h определены макросы для указания констант разнообразных расширенных целочисленных типов. По существу такой макрос является приведением к лежащему в основе типу, т.е. к фундаментальному типу, который представляет расширенный тип в конкретной реализации.
Для формирования имени макроса возьмите имя типа, замените _t на _С и переведите все буквы в верхний регистр. Например, чтобы сделать 1000 константой типа uint_least64_t, используйте выражение UINT_LEAST64_C (1000 ).
Стандартная библиотека ввода-вывода: stdio.h
Стандартная библиотека ANSI С содержит множество стандартных функций ввода- вывода, ассоциированных с потоками и файлом stdio.h. В табл. BV.33 представлены прототипы ANSI для этих функций вместе с кратким объяснением их работы. (Многие функции были более подробно описаны в главе 13.) Кроме того, в заголовочном файле stdio.h определен тип FILE, значения EOF и NULL, а также стандартные потоки ввода-вывода stdin, stdout и stderr, наряду с константами, которые используются функциями в этой библиотеке.
872 Приложение Б
Таблица 6.V.33. Стандартные функции ввода-вывода С


874 Приложение Б
Общие утилиты: stdlib.h
Стандартная библиотека ANSI С включает множество служебных функций, определенных в stdlib.h. В этом заголовочном файле определены типы, перечисленные в табл. B.V.34.

В заголовочном файле также определены константы, описанные в табл. B.V.35. Таблица 6.V.35. Константы, определенные в stdlib.h

В табл. B.V.36 представлены прототипы функций, определенные в stdlib.h. Таблица 6.V.36. Утилиты общего назначения
Читать дальше