Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Тут можно читать онлайн Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература, издательство Вильямс, год 0101. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - описание и краткое содержание, автор Стивен Прата, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать книгу онлайн бесплатно, автор Стивен Прата
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Допустимые аргументы для wctype состоят из имен функций классификации широких - фото 697

Допустимые аргументы для wctype() состоят из имен функций классификации широких символов, из которых исключен префикс isw и которые выражены в виде строк. Например, wctype ("alpha") характеризует класс символов, проверяемых функцией iswalpha(). Таким образом, вызов

iswctype(wc, wctype("alpha")) эквивалентен вызову

iswalpha (wc)

за исключением того, что символы классифицируются с применением категорий LC_CTYPE.

Заголовочный файл wctype.h предлагает четыре функции преобразования. Две из них являются эквивалентами с широкими символами для функций toupper() и tolower() из библиотеки ctype.h. Третья представляет собой расширенную версию, которая использует локальные настройки LC_CTYPE для определения символов верхнего и нижнего регистра. Четвертая функция предоставляет подходящие классификационные аргументы для третьей функции. Все эти функции перечислены в табл. B.V.54.

Таблица 6.V.54. Функции трансформации широких символов

Справочные материалы 895 Раздел VI Расширенные целочисленные типы Как было - фото 698

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

Раздел VI. Расширенные целочисленные типы

Как было описано в главе 3, заголовочный файл inttypes.h из С99 предоставляет систематизированный набор альтернативных имен для разнообразных целочисленных типов. Эти имена описывают свойства типа более ясно, чем это делают стандартные имена. Например, тип int может быть 16-, 32- или 64-битовым, однако тип int32_t — всегда 32-битовый.

Выражаясь более точно, в заголовочном файле inttypes.h определены макросы, которые могут применяться в функциях scanf() и printf() для чтения и записи целых чисел этих типов. Этот заголовочный файл включает заголовочный файл stdlib.h, который обеспечивает действительные определения типов. Форматирующие макросы — это строки, которые могут быть объединены с другими строками для формирования допустимых директив форматирования.

Типы определены с использованием typedef. Например, в системе с 32-битовым int может применяться такое определение: typedef int int32_t;

Спецификаторы формата определены с помощью директив #define. Например, в системе, где используется приведенное выше определение int32_t, могут быть следующие определения:

#define PRId32 "d" // спецификатор вывода

#define SCNd32 "d" // спецификатор ввода

Имея эти определения, вы можете объявлять расширенные целочисленные переменные, вводить их значения и отображать следующим образом:

int32_t cd_sales; // 32-битовое целое число scanf("%" SCNd32, &cd_sales);

printf("Продажи компакт-дисков составили %10" PRId32 " единиц\n", cd_sales);

При необходимости применяется конкатенация строк, чтобы получить финальную управляющую строку. Таким образом, предыдущий код преобразуется к такому виду:

int cd_sales; // 32-битовое целое число

scanf("%d", &cd_sales);

printf("Продажи компакт-дисков составили %10d единиц\n", cd_sales);

Если вы перенесете первоначальный код в систему с 16-битовым int, то эта система может определить int32_t как long, PRId32 — как "ld", a SCNd32 — как "ld". Но вы могли бы использовать тот же самый код, зная, что в системе применяется 32битовый int.

В оставшейся части этого справочного раздела перечислены расширенные типы вместе со спецификаторами формата и макросами, представляющими предельные значения этих типов.

Типы с точной шириной

Один из наборов typedef идентифицирует типы с точными размерами. Общая форма выглядит как intw_t для типов со знаком и uintw t — для типов без знака, где N обозначает количество битов. Однако обратите внимание, что не все системы способны поддерживать все типы. Например, могла бы существовать система, для которой минимальной используемой единицей памяти является 16 битов; в такой системе не поддерживались бы типы int8_t и uint8_t. Макросы формата могут применять для типов со знаком либо d, либо i, поэтому PRH8 и SCNi8 также работают.

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

Для типов без знака вы можете подставлять о, х или X для и, чтобы получить вместо %u спецификаторы %о, %х или %Х. Например, вы можете использовать PRIX32, чтобы вывести uint32_t в шестнадцатеричной форме. В табл. Б.VI.1 перечислены типы с точной шириной, спецификаторы формата и предельные значения.

Таблица 6.VI.1. Типы с точной шириной

Типы с минимальной шириной Типы с минимальной шириной гарантируют что тип - фото 699

Типы с минимальной шириной

Типы с минимальной шириной гарантируют, что тип имеет размер, равный, как минимум, известному количеству битов. Эти типы существуют всегда. Например, система, которая не поддерживает 8-битовые единицы памяти, могла бы определить int_least_8 как 16-битовый тип. В табл. Б.VI.2 перечислены типы с минимальной шириной, спецификаторы формата и предельные значения.

Таблица 6.VI.2. Типы с минимальной шириной

Самые быстрые типы с минимальной шириной В отдельной системе некоторые - фото 700

Самые быстрые типы с минимальной шириной

В отдельной системе некоторые представления целых чисел могут быть быстрее других. Например, int_leastl6_t может быть реализован как short, но система может выполнять арифметические вычисления быстрее, если используется тип int. Таким образом, в заголовочном файле inttypes.h также определены самые быстрые типы для представления, как минимум, определенного количества битов. Эти типы существуют всегда. В некоторых случаях может отсутствовать очевидный выбор для самого быстрого типа, тогда система просто указывает один из возможных вариантов.

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

В табл. B.VI.3 перечислены самые быстрые типы с минимальной шириной, спецификаторы формата и предельные значения.

Таблица 6.VI.3. Самые быстрые типы с минимальной шириной

Типы максимальной ширины Иногда вам может понадобиться наибольший целочисленный - фото 701

Типы максимальной ширины

Иногда вам может понадобиться наибольший целочисленный тип из доступных. В табл. Б.VI.4 перечислены такие типы. Фактически они могут быть шире, чем long long или unsigned long long, поскольку система может предоставлять дополнительные типы, более широкие, чем обязательные стандартные типы.

Таблица 6.VI.4. Типы максимальной ширины

Целые которые могут хранить указатели В заголовочном файле inttypesh через - фото 702

Целые, которые могут хранить указатели

В заголовочном файле inttypes.h (через включенный в него stdint.li) определены два целочисленных типа, приведенные в табл. Б.VI.5, которые могут корректно хранить указатели. То есть, если вы присвоите значение типа void * переменной одного из этих типов, а затем присвоите ее значение обратно указателю, то никакая информация не будет потеряна. Любой из этих типов, или все сразу, могут в системе отсутствовать.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Прата читать все книги автора по порядку

Стивен Прата - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования C. Лекции и упражнения (6-е изд.) 2015 отзывы


Отзывы читателей о книге Язык программирования C. Лекции и упражнения (6-е изд.) 2015, автор: Стивен Прата. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x