По мере продвижения вперед мы объясним эти возможности более подробно. Они написаны на стандартном языке С++, но содержат детали, в которые сейчас не стоит углубляться, отложив их изучение до следующих глав. Важность файла std_lib_facilities.h
для данной программы заключается в том, что с его помощью мы получаем доступ к стандартным средствам ввода-вывода языка С++. Здесь мы просто используем стандартный поток вывода cout
и оператор вывода <<
. Файл, включаемый в программу с помощью директивы #include
, обычно имеет расширение .h
и называется cout
, которые мы используем в нашей программе.
Как компьютер находит точку, с которой начинается выполнение программы? Он просматривает функцию с именем main
и начинает выполнять ее инструкции. Вот как выглядит функция main
нашей программы “Hello, World!”:
int main() // Программы на C++ начинаются с выполнения функции main
{
cout << "Hello, World!\n"; // вывод "Hello, World!"
return 0;
}
Для того чтобы определить отправную точку выполнения, каждая программа на языке С++ должна содержать функцию с именем main
. Эта функция по существу представляет собой именованную последовательность инструкций, которую компьютер выполняет в порядке перечисления. Эта функция состоит из четырех частей.
int
(т.е. целое число), определяет, какой результат возвращает функция в точку вызова (если она возвращает какое-нибудь значение). Слово int
является зарезервированным в языке С++ (
main
.
Отсюда следует, что минимальная программа на языке С++ выглядит так:
int main() { }
Пользы от этой программы мало, так как она ничего не делает. Тело функции main
программы “Hello, World!” содержит две инструкции:
cout << "Hello, World!\n"; // вывод "Hello, World!"
return 0;
Во-первых, она выводит на экран строку Hello, World!
, а затем возвращает значение 0
(нуль) в точку вызова. Поскольку функция main()
вызывается системой, мы не будем использовать возвращаемое значение. Однако в некоторых системах (в частности, Unix/Linux) это значение можно использовать для проверки успешности выполнения программы. Нуль (0
), возвращаемый функцией main()
, означает, что программа выполнена успешно.
Часть программы на языке С++, определяющая действие и не являющаяся директивой #include
(или другой директивой препроцессора; см. разделы 4.4 и А.17), называется
2.3. Компиляция
С++ — компилируемый язык. Это значит, что для запуска программы сначала необходимо транслировать ее из текстовой формы, понятной для человека, в форму, понятную для машины. Эту задачу выполняет особая программа, которая называется .cpp
(например, hello_world.cpp
) или .h
(например, std_lib_facilities.h
), а файлы с объектным кодом имеют расширение .obj
(в системе Windows) или .o
(в системе Unix). Следовательно, простое слово
Компилятор читает исходный код и пытается понять, что вы написали. Он проверяет, является ли программа грамматически корректной, определен ли смысл каждого слова. Обнаружив ошибку, компилятор сообщает о ней, не пытаясь выполнить программу. Компиляторы довольно придирчивы к синтаксису. Пропуск какой-нибудь детали, например директивы #include
, двоеточия или фигурной скобки, приводит к ошибке. Кроме того, компилятор точно так же абсолютно нетерпим к опечаткам. Продемонстрируем это рядом примеров, в каждом из которых сделана небольшая ошибка. Каждая из этих ошибок является довольно типичной.