Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015
- Название:Язык программирования C. Лекции и упражнения (6-е изд.) 2015
- Автор:
- Жанр:
- Издательство:Вильямс
- Год:0101
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание
Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Пример
Целочисленные типы: stdint.h
В этом заголовочном файле с помощью средства typedef создаются имена целочисленных типов, которые указывают свойства целых чисел. Файл stdint.h включен в заголовочный файл inttypes.h, который предоставляет макросы для использования в вызовах функций ввода-вывода. Возможные применения этих типов кратко описаны в разделе VI данного приложения.
Типы с точной шириной
Один из наборов typedef идентифицирует типы с точными размерами. Их имена и размеры перечислены в табл. B.V.26. Однако обратите внимание, что не все системы могут поддерживать все эти типы.
Справочные материалы 869
Таблица 6.V.26. Типы с точной шириной
Типы с минимальной шириной
Типы с минимальной шириной гарантируют, что тип имеет размер, равный, как минимум, определенному количеству битов. Типы с минимальной шириной перечислены в табл. Б.У27. Такие типы существуют всегда.
Таблица 6.V.27. Типы с минимальной шириной
Самые быстрые типы с минимальной шириной
В отдельной системе некоторые представления целых чисел могут быть быстрее других. Поэтому в stdint.h также определены самые быстрые типы для представления, по крайней мере, определенного количества битов. В табл. B.V.28 перечислены наиболее быстрые типы с минимальной шириной. Такие типы также существуют всегда. В некоторых случаях может отсутствовать очевидный выбор для самого быстрого типа, тогда система просто указывает один из возможных вариантов.
Таблица 6.V.28. Самые быстрые типы с минимальной шириной
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. Утилиты общего назначения
Интервал:
Закладка: