Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_пяву_4.doc
Скачиваний:
101
Добавлен:
15.03.2015
Размер:
1.29 Mб
Скачать
    1. Начальные сведения о препроцессоре

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

#имя_директивы содержательная_часть

Директива препроцессора всегда начинается с символа “#”, за которым следует имя директивы. Приведем примеры директив препроцессора:

#include<stdio.h> #include<math.h> #defineMAXSIZE100

В приведенном выше примере имеются три директивы препроцессора. Имя первой директивы include, а в ее содержательной части находится заключенное в угловые скобки имя системного заголовочного файла stdio.h. Эта директива предписывает препроцессору включить вместо рассматриваемой директивы содержимое системного заголовочного файла stdio.h. Наличие в модуле такой директивы необходимо в том случае, когда в нем содержатся вызовы функций стандартного ввода – вывода. В заголовочном файле stdio.h содержаться объявления функций стандартного ввода – вывода (о понятии объявления функции смотри немного ниже). Вторая директива cименемincludeвыполняет такую же работу, что и первая директива препроцессора, но для математического заголовочного файла math.h. Этот заголовочный файл необходимо подключать в том случае, когда в исходном тексте модуля имеются вызовы библиотечных математических функций. Третья директива предписывает препроцессору заменить в рассматриваемом файле исходного текста все вхождения слова MAXSIZE константой100. Директива define используется для определения так называемых символических констант. В рассматриваемом случае такой константой являетсяMAXSIZE. В языке Си существует традиция записывать заглавными буквами имя символической константы, определенной с помощью директивыdefine.

    1. Определение функции main().

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

Заголовок функции main(), не принимающей параметров, имеет следующий вид.

intmain(void)

Рассматриваемый заголовок содержит следующую информацию:

● Функция имеет имя main. На это указывают круглые скобки, следующие за этим именем.

● Функция main()должна вернуть в точку своего вызова целочисленное значение. Об этом свидетельствует зарезервированное словоint, с которого начинается заголовок, которое является спецификатором одного из целочисленных типов языка Си.

● У функции main() отсутствуют параметры. На это указывает зарезервированное словоvoid, стоящее в скобках.

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

Ниже приводится простейшая программа. Это минимальная программа, которая может быть написана на языке Си. Она не выполняет никаких полезных действий, что дает основание считать ее пустой.

/* Пустая программа. Файл empty.c

*/ intmain(void) {

return0; }

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