Язык программирования Си для персонального компьютера | страница 26
Тип 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 |