По мере продвижения вперед мы объясним эти возможности более подробно. Они написаны на стандартном языке С++, но содержат детали, в которые сейчас не стоит углубляться, отложив их изучение до следующих глав. Важность файла 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, двоеточия или фигурной скобки, приводит к ошибке. Кроме того, компилятор точно так же абсолютно нетерпим к опечаткам. Продемонстрируем это рядом примеров, в каждом из которых сделана небольшая ошибка. Каждая из этих ошибок является довольно типичной.