Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Занятие 1.docx
Скачиваний:
9
Добавлен:
12.03.2015
Размер:
37.96 Кб
Скачать

Дополнение к изученному материалу Препроцессор и его функции

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

Препроцессор “общается” с программой при помощи директив. Директивы препроцессора представляют собой инструкции, записанные в тексте программы и выполняемые до ее трансляции. Директивы препроцессора позволяют изменить текст программы, например, заменить некоторые лексемы в тексте, вставить текст из другого файла, запретить трансляцию части текста и т. п. Директивы препроцессора отмечаются специальным маркером#. Знак # должен быть первым символом в строке, содержащей директиву. Между знаком # и первой буквой директивы могут находиться пробелы. После директив препроцессора точка с запятой не ставится.

Директивы препроцессора могут встречаться в любом месте программы, но обычно их стараются помещать в начале для удобства восприятия текста программы. Директивы, появляющиеся в любом месте исходного файла, применимы только к тексту, идущему после этой директивы. Написание директивы препроцессора завершается нажатием клавиши Enter. Для написания директивы в две строки в месте переноса следует нажать комбинацию клавиш [\] + [Enter], и директива продолжается в следующей строке.

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

Немного о прототипах функции

В современных программах на языке C каждую функцию перед использованием необходимо объявлять. Объявление функции называется прототипом функции. Например, для функцииMyFunction(), приведенной ранее, прототип будет иметь следующий вид:

void MyFunction(void);

или

void MyFunction();

Хотя прототипы в языке C формально не требуются, их применение очень желательно. Прототипы дают компилятору возможность тщательно выполнить проверку типов аргументов, правильность их преобразования, обнаружить несоответствия в количестве аргументов, использованных при вызове функции, и в количестве параметров функции. В языке C нет требования, чтобы определение функции обязательно предшествовало вызову функции. Определение может находиться где угодно, например, за определением функции main() или в другом файле. Обязательным условием является объявление функции до ее вызова. Это необходимо для проверки соответствия типов фактических аргументов типам формальным параметров, а также типа возвращаемого функцией значения. Объявление функции называется прототипом функции.

В прототипе функции (в C++ прототип обязателен) должны присутствовать:

- имя функции;

- типы и число формальных параметров;

- тип возвращаемого значения.

Формат прототипа тот же, что и у определения функции, но прототип не имеет:

- тела функции;

- заголовок оканчивается точкой с запятой.

Формат прототипа:

<класс памяти> <тип>имя (список формальных параметров);

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