Краткое содержание
Этот урок разбирает минимальную программу на C++ на части и объясняет роль каждой из них. Директива включения объявляет, от каких частей библиотеки зависит программа, и каждый компонент требует собственного заголовочного файла, даже если иногда его приносит «транзитивно» другой; функция main служит точкой входа, а её возвращаемое значение есть код возврата, который получает система; пространство имён std объединяет имена библиотеки, и курс всегда пишет их с префиксом; инструкции заканчиваются точкой с запятой, фигурные скобки объединяют инструкции в блоки, а комментарии объясняют то, чего код не говорит сам. Урок завершается руководством по стилю, которому курс следует во всех своих программах, и способом читать чужой код, использующий std::cout и std::endl.
Цели обучения
- Распознавать в программе директиву включения, функцию
main, инструкции, блоки и комментарии и объяснять роль каждого из этих элементов. - Объяснять, что делает
#includeи почему каждый компонент библиотеки требует собственного заголовочного файла, даже если в определённом компиляторе программа компилируется без него. - Исправлять программу с ошибками структуры (незакрытая фигурная скобка, пропущенная точка с запятой, пропущенный заголовочный файл) по сообщениям компилятора, читая их начиная с первого.
- Переписывать программу по руководству по стилю курса и обосновывать каждое изменение.
Минимальная программа
На предыдущем уроке программа была скомпилирована и запущена без разбора. Теперь она читается строка за строкой, потому что каждая строка отвечает отдельному требованию: одна требованию языка, другая требованию операционной системы, третья требованию того, кто читает код. Вот эта программа.
// Первая программа: выводит одну строку и завершается.#include <print>int main(){ std::println("Привет, мир");}Привет, мирПервая строка есть комментарий: он начинается с двух косых черт и продолжается до конца строки, а компилятор его отбрасывает; он написан для того, кто будет читать программу. Вторая строка есть директива включения: она требует до компиляции подставить заголовочный файл <print>, где стандартная библиотека объявляет std::println. Пустая строка ни на что не влияет; она отделяет подготовку программы от её содержания. Четвёртая строка открывает функцию main, место, где начинается выполнение, а фигурная скобка в пятой строке открывает её блок, который закрывается в последней строке. Внутри блока одна-единственная инструкция, оканчивающаяся точкой с запятой: вызов std::println, который выводит текст в кавычках, а затем перевод строки.
Стоит заметить, что в программе нет никакой команды для завершения. Дойдя до последней фигурной скобки main, выполнение заканчивается, и программа сообщает системе, что всё прошло успешно; как именно, будет видно ниже. Из этого следует, что для полной программы достаточно пяти частей: комментариев, директив, функции main, блоков и инструкций. Следующие параграфы рассматривают их в этом порядке, кроме комментариев, которые рассматриваются вместе с инструкциями и блоками.
В программе с приветствием директива занимает строку 2; функция main занимает строки от 4 до 7; её блок идёт от фигурной скобки строки 5 до скобки строки 7; единственная инструкция находится в строке 6, а единственный комментарий в строке 1. Если удалить комментарий, программа компилируется так же и выводит то же самое; если удалить любую другую часть, она перестаёт компилироваться или перестаёт быть программой.
Загрузка содержимого…