Структура программы и компиляция
Структура программы на C++ состоит из нескольких ключевых элементов, которые помогают организовать код и сделать его понятным, модульным и легко поддерживаемым.
Программа на С++ состоит из набора инструкций. Каждая инструкция (statement) выполняет определенное действие.
В конце инструкции в языке C++ ставится точка с запятой (;). Данный знак указывает компилятору на завершение инструкции.
Блок кода (набор инструкций) заключается в фигурные скобки.
Пример:Любая программа написанная на C++ должна иметь как миниум одну функцию, которая запускается при запуске программы.
В начале изучения C++ мы будем писать код внутри функции main в фигурных скобках.
Комментарии в C++
Комментарии в C++ предназначены написания подсказок к программе, использование комментариев упрощает понимание и восприятие кода.
В С++ существует два типа комментариев
-
Однострочные
// Комментарий
-
Многострочные
/* Строка с комментарием Ещё строка с комментарием */
Комментарии не являются исполняемым кодом и никак не влияют на ход исполнения программы.
Компиляция
Компиляция — это процесс преобразования исходного кода на C++ в исполняемый файл, который может быть запущен на компьютере. Разберем, как происходит компиляция и как её выполнить вручную или с помощью инструментов.
1. Этапы компиляции
Компиляция программы на C++ состоит из нескольких этапов:
-
Препроцессинг:
- Препроцессор обрабатывает директивы
#include
,#define
,#ifdef
и другие. - Результат — чистый код на C++, который передается компилятору.
- Препроцессор обрабатывает директивы
-
Компиляция:
- Компилятор преобразует код на C++ в объектный код (машинный код для каждой единицы трансляции).
- Результат — объектные файлы (например,
.o
или.obj
).
-
Компоновка (линковка):
- Линкер объединяет объектные файлы и библиотеки в один исполняемый файл.
- Результат — исполняемый файл (например,
.exe
на Windows или без расширения на Linux).
2. Компиляция вручную
Для компиляции вручную используется компилятор, например, g++
(GCC) или clang++
(Clang).
main.cpp
— исходный файл.-o program
— указывает имя выходного файла (program
на Linux/macOS илиprogram.exe
на Windows).
main.cpp
иutils.cpp
— исходные файлы.-o program
— имя выходного файла.
-
Скомпилируйте каждый файл в объектный:
g++ -c main.cpp -o main.o g++ -c utils.cpp -o utils.o -
Соберите объектные файлы в исполняемый:
g++ main.o utils.o -o program
3. Использование Makefile
Makefile
— это файл, который автоматизирует процесс компиляции.
Makefile
:
-
Соберите проект:
make -
Очистите проект (удалите объектные и исполняемые файлы):
make clean
4. Использование CMake
CMake
— это кроссплатформенная система сборки, которая генерирует Makefile или файлы для других систем сборки (например, Visual Studio).
CMakeLists.txt
:
-
Создате папку для сборки:
mkdir build cd build -
Сгенерируйте Makefile:
cmake .. -
Собери проект:
make
5. Компиляция в IDE
Большинство IDE (например, Visual Studio, CLion, Code::Blocks) автоматизируют процесс компиляции. Достаточно нажать кнопку Build или Run.
6. Пример полного цикла компиляции
Файлmain.cpp
:
utils.h
:
utils.cpp
: