Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТТП (методичка).doc
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
2.24 Mб
Скачать
  1. Макросы

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

Обычно макросы используют для того, чтобы связать идентификатор (identifier — опознаватель, имя) и значение. Как только препроцессор встречает идентификатор, он заменяет его на соответствующее значение. Например, директива

#define pi 3.14159265

связывает идентификатор pi со значением 3.14159265.

Макросы могут иметь параметры. Например, макрос

#define sqr(x) ((x) * (x))

задает замену символов sqr(аргумент) на значение ((аргумент) * (аргумент)).

Внимание!

Не оканчивайте значение макроса (например, 3.14159265) точкой с запятой. Значение макроса подставляется вместо имени макроса полностью. Если точка с запятой присутствует в значении макроса, то она будет подставлена вместе с числом, а это может привести к ошибке в выражении, использующем макрос.

Студенту на заметку!

В блок-схеме макросу #define, используемому для связи идентификатора и значения, соответствует блок вычисления:

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

z = sqr(x) + sqr(y);

то в блок-схеме такому оператору соответствует блок вычисления:

  1. Переменные и типы данных

В Си переменные должны быть описаны, т.е. их тип указан до того, как эти переменные будут использованы в программе.

При описании переменных применяется префиксная запись — вначале указывается тип данных, а затем имя переменной:

тип_данных имя_переменной;

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

Это можно продемонстрировать на примере описаниях нескольких простых переменных:

int number_of_books,

number_of_students;

float weight;

int exam_score;

char ch;

В первом описании имеется список переменных, содержащий два имени (number_of_books и number_of_students). Обе переменные описываются как целые — int. Переменная exam_score тоже целого типа и описана отдельно, хотя ее можно добавить к первому списку целых переменных.

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

Переменные можно инициализировать в месте их описания, например:

int height = 71;

float weight = 73.8,

length = 15.23,

time;

Здесь переменным height, weight и length присваиваются начальные значения, а переменной time не присваивается.

Внимание!

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

Студенту на заметку!

В блок-схеме описанию переменной с одновременной инициализацией значения соответствует блок вычисления:

Описание переменной без инициализация ее значения в блок-схеме не отражается.