Программа, написанная на языке С, состоит из директив препроцессора, объявлений глобальных переменных, одной или нескольких функций, cреди которых одна главная (main) функция управляет работой всей программы.
Общая структура программы на языке С имеет вид:
<директивы препроцессора>
<определение типов пользователя – typedef>
<прототипы функций>
<определение глобальных объектов>
<функции>
Функции, в свою очередь, имеют структуру:
<класс_памяти> <тип> <имя функции> (<объявление параметров>)
{ // начало функции
<определение локальных объектов>
<операции и операторы>
} // конец функции
Работа с функциями пользователя рассматривается в лабораторной работе № 5.
Кратко рассмотрим основные части общей структуры программы.
Перед компиляцией программы на языке С/C++ автоматически выполняется предварительная (препроцессорная) обработка текста программы. С помощью директив препроцессора задаются необходимые действия по преобразованию текста программы перед компиляцией.
|
|
Директивы записываются по следующим правилам:
- все препроцессорные директивы должны начинаться с символа #;
- все директивы начинаются с первой позиции;
- сразу за символом # должно следовать наименование директивы, указывающее текущую операцию препроцессора.
Наиболее распространены директивы #include и #define.
Директива #include используется для подключения к программе заголовочных файлов (обычных текстов) с декларацией стандартных библиотечных функций. При заключении имени файла в угловые скобки < > поиск данного файла производится в стандартной директории с этими файлами. Если же имя файла заключено в двойные кавычки ” ”, то поиск данного файла осуществляется в текущем директории.
Например:
#include <stdio.h> - подключение файла с объявлением стандартных функций файлового ввода-вывода;
#include <conio.h> - функции работы с консолью;
#include <graphics.h> - графические функции;
#include <math.h> - математические функции.
Директива #define (определить) создает макроконстанту и ее действие распространяется на весь файл.
Например: #define PI 3.1415927
В ходе препроцессорной обработки программы идентификатор PI заменяется значением 3,1415927.
Пример программы:
#include <stdio.h>
#include < conio.h> /* Директивы препроцессора */
#define PI 3.1415927
void main() // Заголовок главной функции
{ // Начало функции
int num; // Декларирование переменной num
num=13; // Операция присваивания
clrscr(); // Очистка экрана
printf(" \n Число pi=%7.5f\n %d - это опасное число \n”, PI, num);
} // Конец функции
В первых двух строках программы указаны директивы препроцессора #include, по которым происходит подключение заголовочныхфайлов, содержащих декларации функций ввода-вывода (stdio.h) для функции printf() и работы с консолью (conio.h) для функции clrscr(). Следующая директива создает макроконстанту PI и подставляет вместо ее имени значение 3,1415927 по всему тексту программы. В главной функции main декларируется переменная целого типа num. Далее этой переменной присваивается значение 13. Функция printf выводит на экран строки:
|
|
Число pi =3.1415927
13 – это опасное число
Как видно, функция представляет собой набор операций и операторов, каждый из которых оканчивается символом; (точка с запятой).
В тексте программы использованы комментарии между парой символов /* */ и после пары символов //.