Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / Лекции по ЯП (часть 3).doc
Скачиваний:
138
Добавлен:
15.04.2015
Размер:
1.34 Mб
Скачать

Структура программы

<команды препроцессора>

#include <stdio.h>

(эквивалентно {$I stdio.h})

#define N 20

(эквивалентно Const N=20;)

<определение типов>

1) Определение синонима старого типа

typedef unsigned int uint;

----------- -----

определение синоним

2) определение нового типа

typedef struct { int a, b;} str;

<прототипы функций>

Заголовок

int sum(int x, int y);

<глобальные переменные>

int x, y;

( то же , что Var x, y: integer);

или int x=2, y=3;

(то же, что const x:integer=2;

y:integer=3;)

<функции>

Заголовок + тело

Функции в свою очередь имеют следующую структуру:

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

{ --- то же, что begin

<описания локальных переменных>

<операторы и вызовы функций>

} --- то же, что end

В программе на СИ из всех функций, которые вы объявляете, только одна должна иметь имя main. Это и есть главный модуль вашей программы. Если вы забыли назвать одну из функций как main, то программа не сможет выполниться. Компилироваться программа начинает не сразу – вначале выполняются предложения препроцессора. Он находит в тексте свои команды и в соответствии с ними выполняет преобразование текста программы.

Когда программа начинает выполняться, первой вызывается функция Main(), а она может вызывать другие функций, описанные по тексту программы выше или ниже (вложенные функции в Си запрещены). Любая программа на Си состоит только из функций (процедур в чистом виде нет). Однако, некоторые функции имеют тип void (пустой тип) и не возвращают значений, так, что они аналогичны процедурам Паскаля. Вы также можете просто игнорировать значения, возвращаемые функциями, и вызывать функции как процедуры.

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

Прототипы обычно не требуются, если все используемые функции определяются выше точки их вызова (обычно в main()). Прототипы стандартных функций хранятся в виде специальных заголовочных (h-файлов), которые надо подключать к своей программе с помощью #include <имя h-файла>.

Определяются переменные в Си по другому, чем в Паскале:

  • слово Var не пишут, а тип и имя поменялись местами по сравнению с Паскалем;

  • в Си переменные можно инициализировать прямо в месте описания (как для типизированных констант на Паскале);

  • в отличие от Паскаля регистр букв в именах переменных учитывается, т.е.

  • int a,b; не то же, что int A,B;.

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