Hello, world!

Историческая справка

С — это язык программирования, созданный в 70-х годах XX века для разработки системы UNIX и программного обеспечения для нее. В 80-х годах XX века на основе языка C был создан язык C++, являющийся объектно-ориентированным расширением языка C++. В настоящее время языки C и C++ являются наиболее распространенными языками для профессиональной разработки программного обеспечения для всех операционных систем. Синтаксис языка C и C++ не зависит от используемой системы и компилятора, однако набор доступных библиотек (например, для разработки графических приложений) является системно-зависимым и не стандартизирован.

Далее речь будет идти о языке C++. Многое из того, о чем пойдет ниже речь, верно и для языка C, но мы на этом останавливаться не будем.

Программа, которая используется для перевода программы с языка программирования в машинный код, пригодный для исполнения компьютером, называется компилятором. Мы будем использовать компилятор gcc, вариант компилятора gcc для языка C++ называется g++, а реализация компилятора gcc для системы Windows называется MinGW.

При этом все рассматриваемые примеры должны правильно компилироваться любым компилятором, соответствующим стандарту языка C++. Например, таким компилятором является MS Visual C++ последних версий

Для облегчения процесса написания, запуска и отладки программы используются среды разработки, например, Code::Blocks, CLion, Visual Studio.

Hello, world

Язык C++ является компилируемым языком. Для того, чтобы написать программу, вам необходимо в любом текстовом редакторе набрать следующий текст и сохранить его в файле, например, hello.cpp.

#include <iostream>

using namespace std;

int main()
{
    cout  << "Hello, world!" << endl;
    return 0;
}

Язык C++ является чувствительным к регистру букв, то есть заменить main на Main или MAIN нельзя. Весь текст (за исключением текстовой строки "Hello, world!") нужно набирать в нижнем регистре, то есть строчными буквами.

После этого вам нужно откомпилировать этот файл (создать из этого файла исполняемый машинный код) при помощи следующей команды (в системе Linux, знак “$” обозначает приглашение командной строки, его набирать не нужно):

$ g++ hello.cpp

В среде разработки (например, Code::Blocks) для компиляции программы существует пункт меню, вызывающий компилятор. Если ваша программа написана правильно, то компилятор не выдаст никаких сообщений об ошибках и создаст исполняемый файл (a.out в системе Linux или exe-файл в системе Windows). Этот файл содержит исполняемый двоичный машинный код. Чтобы его запустить, наберите команду (в системе Linux):

$ ./a.out

В системе Windows исполняемый файл будет называться a.exe и запускать его нужно так:

> a.exe

Рассмотрим подробней текст этой программы. В первой строчке мы подключаем к нашей программе файл с именем iostream, в котором содержится описание стандартной библиотеки ввода-вывода языка C++. Этот файл хранится в каталоге, имеющим имя вроде /usr/include/c++/7.3.2/ (в системе Linux). В этом файле находится, в частности, определение объектов cout и endl, который мы будем использовать позднее. Вторая строка указывает компилятору на то, что мы будем использовать все функции, входящие в пространство имен std, то есть все функции, относящиеся к стандартной библиотеке C++. Третья строка содержит объявление функции main, не принимающей никаких аргументов и возвращающей значение int. Эта функция должна быть в каждой программе, именно эта функция получает управление при запуске программы. Четвертая строка содержит открывающуюся фигурную скобку, что означает начало функции main. В пятой строке мы при помощи оператора << помещаем в объект cout строку "Hello, world!", а потом специальный объект endl, означающий символ перевода строки. Это приводит к печати на экране этой строки и последующему переводу каретки. В шестой строке мы даем инструкцию return, завершающую выполнение функции main и возвращающую нулевое значение. Седьмая строка содержит фигурную скобку, синтаксически закрывающую функцию main.

Для начала можно считать, что все строки, кроме пятой, являются некоторым набором “заклинаний”, без которых программа не будет работать и которые обязательно нужно указать, а вот пятую строку можно заменить на другие строки с различными инструкциями.

Компиляторы C++

Большинство сред разработки (Code::Blocks, CLion) используют наиболее распространённый компилятор GCC, the GNU Compiler Collection, являющийся стандартным компилятором для большинства UNIX-подобных систем, прежде всего Linux. Наиболее современным портом компилятора gcc в систему Windows является MinGW-w64.

Другим распространённым кросс-платформенным компилятором является Clang. Это стандартный компилятор для MacOS и многих BSD-систем.

Среда Visual Studio использует собственный компилятор Visual C++, работающий только под Windows.

Последние версии сред разработки Code::Blocks и CLion уже включают в себя компилятор GCC, достаточно установить соответствующую среду и компилятор уже будет доступен в ней. При скачивании среды Code::Blocks нужно выбрать вариант среды с MinGW.