<< Предыдущая Оглавление Следующая >>


1.1. Структура и этапы создания программы на языке С++

Сама по себе программа на языке С++ представляет собой текстовый файл, в котором представлены конструкции и операторы данного языка в заданном программистом порядке. В самом простом случае этот текстовый файл может содержать такую информацию:

Листинг 1.1. Пример простой программы.

/* Пример простой программы*/
#include
int main()
{
printf(“Hello World!”);
return 0;
}

и обычно имеет расширение cpp, например, «ex1.cpp».

Следующий шаг – это компиляция исходного кода. Под компиляцией понимают процесс, при котором содержимое текстового файла преобразуется в исполняемый машинный код, понимаемый процессором компьютера. Однако компилятор создает не готовую к исполнению программу, а только объектный код (файл с расширением *.obj). Этот код является промежуточным этапом при создании готовой программы. Дело в том, что создаваемая программа может содержать функции стандартных библиотек языка С++, реализации которых описаны в объектных файлах библиотек. Например, в приведенной программе используется функция printf() стандартной библиотеки «stdio.h». Это означает, что объектный файл ex1.obj будет содержать лишь инструкции по вызову данной функции, но код самой функции в нем будет отсутствовать.

Для того чтобы итоговая исполняемая программа содержала все необходимые реализации функций, используется компоновщик объектных кодов. Компоновщик – это программа, которая объединяет в единый исполняемый файл объектные коды создаваемой программы, объектные коды реализаций библиотечных функций и стандартный код запуска для заданной операционной системы. В итоге и объектный файл, и исполняемый файл состоят из инструкций машинного кода. Однако объектный файл содержит только результат перевода на машинный язык текста программы, созданной программистом, а исполняемый файл – также и машинный код для используемых стандартных библиотечных подпрограмм и для кода запуска.

Рассмотрим более подробно пример программы листинга 1.1. Первая строка задает комментарии, т.е. замечания, помогающие лучше понять программу. Они предназначены только для чтения и игнорируются компилятором. Во второй строке записана директива #include, которая дает команду препроцессору языка С++ вставить содержимое файла ‘stdio.h’ на место этой строки при компиляции. В третьей строке определена функция с именем main, которая возвращает целое число (тип int) и не принимает никаких аргументов (тип void). Функция main() является обязательной функцией для всех программ на языке С++ и без ее наличия уже на этапе компиляции появляется сообщение об ошибке, указывающее на отсутствие данной функции. Обязательность данной функции обусловливается тем, что она является точкой входа в программу. В данном случае под точкой входа понимается функция, с которой начинается и которой заканчивается работа программы. Например, при запуске exe-файла происходит активизация функции main(), выполнение всех операторов, входящих в нее и завершение программы. Таким образом, логика всей программы заключена в этой функции. В приведенном примере при вызове функции main() происходит вызов функции printf(), которая выводит на экран монитора сообщение “Hello World!”, а затем выполняется оператор return, который возвращает нулевое значение. Это число возвращается самой функцией main() операционной системе и означает успешное завершение программы. Фигурные скобки {} служат для определения начала и конца тела функции, т.е. в них содержатся все возможные операторы, которые описывают работу данной функции. Следует отметить, что после каждого оператора в языке С++ ставится символ ‘;’. Таким образом, приведенный пример показывает общую структуру программ на языке С++.

Видео по теме

С++ с нуля: урок 1 - переменные, оператор присваивания

С++ с нуля: урок 2 - арифметические операции

С++ с нуля: урок 3 - директивы препроцессора

С++ с нуля, урок 4: условные операторы if и switch

С++ с нуля: урок 5 - операторы циклов while, for и do while

С++ с нуля: урок 6 - массивы, метод всплывающего пузырька

С++ с нуля: урок 7 - строки и функции работы с ними

С++ с нуля: урок 8 - функции: прототипы, перегрузка, рекурсия

С++ с нуля: урок 9 - области видимости переменных

С++ с нуля: урок 10 - битовые операции И, ИЛИ, НЕ, XOR

С++ с нуля: урок 11 - структуры

С++ с нуля: урок 12 - объединения, перечисления, typedef

С++ с нуля: урок 13 - указатели и ссылки, выделение памяти

С++ с нуля: урок 14 (часть 1) - функции работы с файлами

С++ с нуля: урок 14 (часть 2) - функции работы с файлами

С++ с нуля: урок 15 - стек, теория и практика

С++ с нуля: урок 16 - связные списки, теория и практика

С++ с нуля: урок 17 - бинарное дерево, теория и практика



<< Предыдущая Оглавление Следующая >>