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

2.2. Идентификаторы (имена)

Идентификатор - это последовательность букв и цифр. Первый символ должен быть буквой. Подчеркивание (_) считается буквой. Прописные и строчные буквы различаются. Ограничение на длину имени отсутствует. Реализации могут игнорировать различия в размерах букв внешних имен, ограничивать число значащих символов как для внешних, так и для локальных имен.

2.3. Ключевые слова

Следующие идентификаторы зарезервированы для использования в качестве ключевых слов и не могут использоваться в другом смысле:

asm default float register switch

auto do for return typedef

break double goto short union

case else if sizeof unsigned

char enum int static void

continue extern long struct while

Некоторые реализации резервируют также слово fortran.

3.2. Тип

Язык C поддерживает несколько базовых типов объектов. Объекты, описанные как символы (char), занимают место достаточное, чтобы поместить в него любое значение из используемой кодировки символов. Если в переменную типа char заносится настоящий символ из данной кодировки, ее значение равно численному значению символа. В символьные переменные можно помещать и другие величины, но реализация этого машинно-зависима. В частности, char по умолчанию может быть знаковым или беззнаковым. В данной реализации символы по умолчанию знаковые.

Доступно до трех возможных размеров целых чисел, которые описываются при помощи ключевых слов short int, int и long int. Более длинные целые предоставляют не меньше места, чем более короткие, однако в некоторых реализациях короткие или длинные целые, либо и те и другие, эквивалентны обычным целым. Обычные целые имеют размер, наиболее естественный для архитектуры конкретного компьютера. Другие размеры предоставляются, чтобы удовлетворить специфические потребности. Размеры базовых типов для процессоров MC68020/30 показаны в таблице:

68020/30

 char 

 8 бит  

 int 

 32  

 short 

 16  

 long 

 32  

 float 

 32  

 double 

 64 

Свойства типов enum (см. Описания перечислимых типов в разделе ОПИСАНИЯ) тождественны свойствам некоторых целых типов. Реализация компилятора может использовать информацию о диапазоне значений, чтобы определить, сколько выделять памяти.

Беззнаковые целые, описанные как unsigned, подчиняются законам арифметики по модулю (2n), где n - число бит в их представлении.

Для вещественных чисел обычная (float) и двойная (double) точности могут в некоторых реализациях совпасть.

Поскольку объекты перечисленных выше типов можно с успехом интерпретировать как числа, будем далее относить их к арифметическим типам. char, int всех размеров (со знаком или без), а также enum будут собирательно называться целочисленными типами. Типы float и double будут собирательно называться вещественными типами.

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

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

  • Массивы объектов большинства типов.

  • Функции, возвращающие объекты данного типа.

  • Указатели на объекты данного типа.

  • Структуры, которые содержат в себе последовательность объектов различных типов.

  • Объединения, которые могут содержать в себе один из нескольких объектов различных типов.

В общем случае перечисленные методы конструирования типов могут применяться рекурсивно.

. Объявление переменных

Одним из отличий языка C от ряда других языков программирования является отсутствие принципа умолчания, что приводит к необходимости явного объявления всех переменных, используемых в программе, вместе с указанием соответствующих им типов.

Объявление переменной имеет следующий формат:

[спецификатор_класса_памяти] спецификатор_типа идентификатор [=инициатор].

Спецификатор класса памяти определяется одним из 4 ключевых слов языка C: auto,extern,register,static и указывает, во-первых, каким образом будет распределяться память под объявляемую переменную и, во-вторых, область видимости этой переменной, т. е. из каких частей программы можно к ней обратиться.

Спецификатор типа -одно или несколько ключевых слов, определяющих тип объявляемой переменной.

Инициатор задает начальное значение или список начальных значений, присваиваемых переменной при объявлении.

Примеры инициализации переменных:

int i=5; float f=12.35; char ch='a';

int k=0, b=5, d=7;

Переменная любого типа может быть объявлена немодифицируемой, что достигается добавлением ключевого слова const к спецификатору типа. Объекты с типом const представляют собой данные, используемые только для чтения, т. е. этой переменной не может быть присвоено новое значение: например, const int a=5.

Отметим, что если после слова const отсутствует спецификатор типа, то подразумевается спецификатор типа int. Если ключевое слово const стоит перед объявлением составных типов (массив, структура, объединение), то это приводит к тому, что каждый элемент также должен являться немодифицируемым, т. е. значение ему может быть присвоено только один раз.

Ключевое слово void означает отсутствие типа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]