Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PYaVU_s.doc
Скачиваний:
44
Добавлен:
24.02.2016
Размер:
665.09 Кб
Скачать
    1. Область значений величин

Область значений величин- это интервал целых величин от минимального до максимального, который может быть представлен в заданном числе бит. Тем не менее не всегда возможно (см. раздел 4."Выражения и присваивания") использовать максимальное или минимальное значение для константы данного типа в выражении.

Например, константное выражение -32768 состоит из арифметического отрицания (-), предшествующего величине константы 32768. Так как 32768- это слишком большое значение для типа short, то оно задается типом long и следовательно константное выражение -32768 будет иметь тип long. Величина -32768 может быть представлена как short только путем преобразования ее типа к типу short. Информация не будет потеряна при преобразовании типа, поскольку -32768 может быть представлено двумя байтами памяти. Аналогично такая величина, как 65000 может быть представлена как unsigned short только путем преобразования ее к типу unsigned short или заданием величины в восьмиричном или шестнадцатиричном представлении. Величина 65000 в десятичном представлении рассматривается как знаковая и задается типом long, так как 65000 не соответствует типу short. Эта величина типа long может быть преобразована к типу unsigned short без потери информации, так как 65000 можно разместить в двух байтах памяти.

Восьмеричные и шестнадцатиричные константы могут быть знакового и беззнакового типа в зависимости от их размера. Однако, метод, используемый для назначения типов этим константам гарантирует, что они всегда будут преобразованы к беззнаковому целому. Числа с плавающей точкой используют IEEE (институт инженеров электриков и электронщиков) формат. Величины типа float занимают 4 байта, состоящих из бита знака и 7-ми битовой избыточной экспоненты и 24- ех битовой мантиссы. Мантисса представляет число между 1.0 и 2.0. Так как старший бит мантиссы всегда 1, он не запоминается в памяти. Это представление дает область значений приблизительно от 3.4E-38 до 3.4E38.

Величины типа double занимают 8 байт. Их формат аналогичен float формату, за исключением того, что порядок занимает 11 бит, а мантисса 52 бита плюс бит, который опущен. Это дает область значений приблизительно от 1.7E-308 до 1.7E+308.

    1. Деклараторы

Синтаксис:

<identifier>

<declarator>[]

<declarator>[constant-expression>]

*<declarator>

<declarator>()

<declarator>(<arg-type-list>)

(<declarator>)

Си позволяет объявлять: массивы величин, указатели на величины, величины возвратов функций. Чтобы объявить эти объекты, нужно использовать декларатор, возможно модифицированный квадратными скобками ([]), круглыми скобками () и звездочкой (*), что соответствует типам массива, функции или указателя. Деклараторы появляются в объявлениях указателей, массивов и функций.

      1. Деклараторы массивов, функций и указателей

Когда декларатор состоит из немодифицируемого идентификатора, то об'ект, который объявляется, имеет немодифицированный тип. Звездочка, которая может появиться слева от идентификатора, модифицирует его в тип указателя. Если за идентификатором следуют квадратные скобки ([]), то тип модифицируется на тип массива. Если за идентификатором следуют круглые скобки, то тип модифицируется на тип функции. Сам по себе декларатор не образует полного объявления. Для этого в объявление должен быть включен спецификатор типа. Спецификатор типа задает тип элементов массива или тип адресуемых объектов и возвратов функции.

Следующие примеры иллюстрируют простейшие формы деклараторов:

  1. int list[20]

  2. char *cp

  3. double func(),

где:

1. Массив list целых величин

2. Указатель cp на величину типа char

3. Функция func без аргументов, возвращающая величину double