Перейти к основному содержимому

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

Анатомия программы на языке Си

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

Базовая структура

#include <stdio.h>  // Директива препроцессора

int main() { // Главная функция
printf("Hello, World!\n");
return 0; // Возврат значения
}

Компоненты программы

1. Директивы препроцессора

Директивы препроцессора начинаются с символа # и обрабатываются до компиляции программы.

#include <stdio.h>    // Стандартная библиотека ввода-вывода
#include <stdlib.h> // Общие утилиты
#include <string.h> // Работа со строками

2. Объявления и определения

// Глобальные переменные
int globalCounter = 0;

// Прототипы функций
int add(int a, int b);
void printMessage(void);

3. Функция main()

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

int main() {
// код программы
return 0;
}

Полная структура программы

/* Комментарий-заголовок программы */

// 1. Директивы препроцессора
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 50

// 2. Глобальные объявления
int studentCount = 0;

// 3. Прототипы функций
void initializeData(void);
int processStudent(int id);

// 4. Главная функция
int main(void) {
initializeData();

printf("Система управления студентами\n");

int result = processStudent(1);
printf("Результат обработки: %d\n", result);

return 0;
}

// 5. Определения функций
void initializeData(void) {
studentCount = 0;
printf("Данные инициализированы\n");
}

int processStudent(int id) {
if (id > 0 && studentCount < MAX_STUDENTS) {
studentCount++;
return studentCount;
}
return -1;
}
Внимание!

Даже если вы сейчас не понимаете что написано выше, не переживайте, данные примеры служат для наглядности примеров и в будущем будут разобраны.

Ключевые правила структуры

Важно помнить
  • Функция main() обязательна для исполняемых программ
  • Директивы препроцессора должны располагаться в начале файла
  • Прототипы функций объявляются до их использования
  • Глобальные переменные доступны во всей программе
Частые ошибки
  • Забывание return 0; в функции main()
  • Неправильный порядок размещения компонентов
  • Отсутствие точки с запятой после объявлений

Возвращаемое значение функции main()

ЗначениеЗначение
0Успешное завершение программы
1-255Код ошибки (передается операционной системе)
int main() {
if (/* условие ошибки */) {
return 1; // Сообщить об ошибке
}

// Нормальное выполнение программы
return 0; // Успешное завершение
}

Структура программы на языке Си является фундаментом для понимания организации кода и правильного построения программ.