C. Бочков - Язык программирования Си для персонального компьютера
- Название:Язык программирования Си для персонального компьютера
- Автор:
- Жанр:
- Издательство:СП Диалог, Радио и связь
- Год:1990
- ISBN:5-256-00974-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
C. Бочков - Язык программирования Си для персонального компьютера краткое содержание
Книга содержит полное описание наиболее распространенных реализаций языка программирования Си на 16-разрядных микроЭВМ, совместимых с IBM PC. Приведено описание стандартных библиотек языка.
Для слушателей учебных курсов в области программирования, разработчиков программного обеспечения, а также студентов соответствующих специальностей вузов. Может быть использовано как техническая документация и справочное пособие для широкого круга программистов, как профессионалов, имеющих большой опыт работы на языке Си, так и начинающих программировать на Си.
Язык программирования Си для персонального компьютера - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Определения функций описаны в разделе 6.2, инициализаторы — в разделе 3.7.
Базовые типы данных
В языке Си реализован набор типов данных, называемых "базовыми" типами. Спецификации этих типов перечислены в таблице 3.1.
Таблица 3.1.
Базовые типы | Спецификация типов | |
Целые | signed char | знаковый символьный |
signed int | знаковый целый | |
signed short int | знаковый короткий целый | |
signed long int | знаковый длинный целый | |
unsigned char | беззнаковый символьный | |
unsigned int | беззнаковый целый | |
unsigned short int | беззнаковый короткий целый | |
unsigned long int | беззнаковый длинный целый | |
Плавающие | float | плавающий одинарной точности |
double | плавающий двойной точности | |
long float | длинный плавающий одинарной точности | |
long double | длинный плавающий двойной точности | |
Прочие | void | пустой |
enum | перечислимый |
Тип long floatреализован только в версии 4.0 СП MSC и эквивалентен типу double. В версии 5.0 СП MSC и в СП ТС реализован тип long double, причем в версии 5.0 СП MSC и версии 1.5 СП ТС он эквивалентен типу double, а в версии 2.0 СП ТС является самостоятельным типом размером 80 битов.
Типы char, int, shortи longимеют две формы — знаковую ( signed) и беззнаковую ( unsigned). В совокупности они образуют целый тип. Перечислимый тип также служит для представления целых значений, однако, переменная перечислимого типа может принимать значения только из набора, заданного в ее объявлении. Спецификации типов floatи doubleотносятся к плавающему типу.
Целый тип (включая перечислимый тип) и плавающий тип в совокупности образуют арифметический тип.
Тип void(пустой) имеет специальное назначение. Указание спецификации типа voidв объявлении функции означает, что функция не возвращает значений. Указание типа voidв списке объявлений аргументов в объявлении функции означает, что функция не принимает аргументов. Можно объявить указатель на тип void; он будет указывать на любой, т.е. неспецифицированный тип. Тип voidможет быть указан в операции приведения типа. Приведение значения выражения к типу voidявно указывает на то, что это значение не используется. Нельзя объявить переменную типа void.
При записи спецификаций целого и плавающего типа допустимы сокращения, приведенные в таблице 3.2. Например, в целых типах ключевое слово signedможет быть опущено. Если ключевое слово unsignedотсутствует в записи спецификации типа short, intили long, то тип целого будет знаковым, даже если опущено ключевое слово signed.
По умолчанию тип charвсегда имеет знак. Однако существует опция компилятора языка Си, позволяющая изменить умолчание для charсо знакового типа на беззнаковый. Если эта опция задана, то сокращение charимеет тот же смысл, что и unsigned char, и, следовательно, для объявления символьной переменной со знаком должно быть записано ключевое слово signed.
Таблица 3.2.
Спецификация типа | Сокращение |
signed char | char |
signed int | signed, int |
signed short int | short, signed short |
signed long int | long, signed long |
unsigned char | - |
unsigned int | unsigned |
unsigned short int | unsigned short |
unsigned long int | unsigned long |
float | - |
long float | double |
long double | double (СП MSC 5.0, СП TC 1.5) |
long double | —(СП TC 2.0) |
Примечание. В данной книге в основном используются сокращенные формы записи спецификаций типов, перечисленные в таблице 3.2; при этом предполагается, что тип charпо умолчанию имеет знак.
Области значений
Область значений — это интервал от минимального до максимального значения, которое может быть представлено в переменной данного типа. В таблице 3.3 приведен размер занимаемой памяти и области значений переменных для каждого типа. Поскольку переменных типа voidне существует, он не включен в эту таблицу.
Таблица 3.3.
Тип | Представление в памяти | Область значений |
char | 1 байт | от -128 до 127 |
int | зависит от реализации | |
short | 2 байта | от -32768 до 32767 |
long | 4 байта | от -2.147.483.648 до 2.147.483.647 |
unsigned char | 1 байт | от 0 до 255 |
unsigned | зависит от реализации | |
unsigned short | 2 байта | от 0 до 65535 |
unsigned long | 4 байта | от 0 до 4.294.967.295 |
float | 4 байта | стандартный формат IEEE |
double | 8 байтов | стандартный формат IEEE |
long double | 10 байтов | стандартный формат IEEE |
Тип charможет использоваться для хранения буквы, цифры или другого символа из множества представимых символов. Значением объекта типа charявляется код, соответствующий данному символу. Тип charинтерпретируется как однобайтовое целое с областью значений от -128 до 127. Тип unsigned charможет содержать значения в интервале от 0 до 255. В частности, буквы русского алфавита имеют коды, соответствующие типу unsigned char.
Следует отметить, что представление в памяти и область значений для типов intи unsigned intне определены в языке Си. В большинстве систем программирования размер типа int(со знаком или без знака) соответствует реальному размеру целого машинного слова. Например, на 16-разрядном компьютере тип intзанимает 16 разрядов, или 2 байта. На 32-разрядном компьютере тип intзанимает 32 разряда, или 4 байта. Таким образом, тип intэквивалентен либо типу short int(короткое целое), либо типу long int(длинное целое), в зависимости от компьютера. Аналогично, тип unsigned intэквивалентен либо типу unsigned short int, либо типу unsigned long int. Однако рассматриваемые в данной книге компиляторы языка Си, разработанные для моделей IBM PC с 16-разрядным машинным словом, при работе на IBM PC/AT с процессором Intel 80386 (имеющим 32-разрядное машинное слово) отводят для типа intи unsigned intтолько 16 разрядов.
Спецификации типов intи unsigned intшироко используются в программах на Си, поскольку они позволяют наиболее эффективно работать с целыми значениями на данном компьютере. Однако, поскольку размер типов intи unsigned intявляется машинно-зависимым, программы, зависящие от конкретного размера типа intили unsigned intна каком-либо компьютере, могут быть непереносимы на другой компьютер. Переносимость программ можно повысить, если использовать для ссылки на размер типа данных операцию sizeof.
Читать дальшеИнтервал:
Закладка: