Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подбельский Фомин_Программирование на языке СИ_...doc
Скачиваний:
324
Добавлен:
10.08.2019
Размер:
53.81 Mб
Скачать

Идентификатор

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

Прописные и строчные буквы различаются, т.е. два последних идентификатора различны.

Идентификаторы могут иметь любую длину, но компилятор учитывает не более 31-го символа от начала идентификатора. В некоторых компиляторах это ограничение еще более жесткое, и учитываются только первые 8 символов любого идентификатора. В этом случае идентификаторы NUMBER_OF_ROOM и NUMBER_OF_TEST в программе будут неразличимы.

Служебные (ключевые) слова

Служебные (ключевые) слова. Идентификаторы, зарезервированные в языке, т.е. такие, которые нельзя использовать в качестве свободно выбираемых программистом имен, называют служебными словами. Служебные слова определяют типы данных, классы памяти, квалификаторы типа, модификаторы, псевдопеременные и операторы. В стандарте языка определены следующие служебные слова:

По смысловой нагрузке служебные слова группируются следующим образом.

Для обозначения типов данных используются спецификаторы типов и квалификаторы типов.

К спецификаторам типов относятся:

char

double

float

enum

int

long

short

strukt

signed

union

unsigned

void

typedef

Квалификаторы типа:

const

volatile

- символьный;

- вещественный двойной точности с плавающей точкой;

- перечисляемый тип (перечисление) - определение целочисленных констант, для каждой из которых вводятся имя и значение;

- вещественный с плавающей точкой;

- целый;

- целый увеличенной длины (длинное целое);

- целый уменьшенной длины (короткое целое);

- структура (структурный тип);

- знаковый, т.е. целое со знаком (старший бит считается знаковым);

- объединение (объединяющий тип);

- беззнаковый, т.е. целое без знака (старший бит не считается знаковым);

- отсутствие значения;

- вводит синоним обозначения типа (определяет сокращенное наименование для обозначения типа).

- квалификатор объекта, имеющего постоянное

значение, т.е. доступного только для чтения;

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

Квалификаторы типа информируют компилятор о необходимости и (или) возможности особой обработки объектов в процессе оптимизации кода программы.

Для обозначения классов памяти используются:

auto

extern

register

static

- автоматический;

- внешний;

- регистровый;

- статический.

Для построения операторов используются:

break

continue

do

for

goto

if

return

switch

while

- завершить, прервать (например, цикл или переключатель);

- завершить текущую итерацию цикла (продолжить цикл, перейдя к следующей итерации);

- выполнять (заголовок оператора цикла с постусловием);

- для (заголовок оператора параметрического цикла);

- перейти (безусловный переход);

- "если" - обозначение условного оператора;

- возврат (из функции);

- переключатель;

- "пока" (заголовок цикла с предусловием или завершение цикла do).

К служебным словам также отнесены следующие идентификаторы:

default

case

else

sizeof

- определяет действия при отсутствии нужного варианта в операторе switch;

- определяет вариант в операторе switch;

- входит в оператор if, определяя альтернативную ветвь;

- операция определения размера операнда (в байтах).

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

Кроме основных (определенных стандартом языка) служебных слов и модификаторов, конкретные реализации языка Си (конкретные компиляторы) содержат собственные расширения списка служебных (ключевых) слов. Например, компилятор Borland C++ для языка Си дополнительно вводит следующие модификаторы (перечислены не все):

Для работы с регистрами в том же компиляторе Borland C++ определен набор псевдопеременных, доступных из программ на языке Си и запрещенных для использования в других целях:

Конструкции языка, в которых используются служебные слова, будем определять по мере необходимости. Можно было бы не перечислять все служебные слова, а вводить их по мере изложения языка, однако их запрещено использовать в качестве имен, выбираемых программистом, и поэтому для предупреждения возможных ошибок список служебных слов нужен уже на данном этапе.

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