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++ в системе Windows

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

Для установки скачайте программу-установщик, ответьте на все вопросы вариантом по умолчанию. Компилятор будет установлен в каталог вида C:\Program Files (x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32. Для запуска командной строки Windows с настроенным компилятором выберите в меню Пуск команду “MinGW-W64 project — Run terminal”.

MinGW не добавляет каталог с компиляторами (это подкаталог bin каталога, в который была произведена установка) в системную переменную PATH, в которой осуществляется поиск программ при их запуске. Поэтому вы можете запускать компилятор g++ в Windows из консоли, только запуская консоль из меню MinGW-W64 в меню “Пуск”. Полезно добавить каталог bin установки MinGW-w64 в системную переменную PATH. Для этого нужно открыть свойства компьютера (контекстное меню правой кнопкой мыши на иконке компьютера), выбрать “Свойства”, выбрать “Расширенные”.

Как создать Release-сборку в CLion

Зайти в меню File — Settings. Выбрать пункт Build, Execution, Deployment — CMake.

В списке Profiles есть один профиль “Debug”, нажмите на “+” и добавьте профиль “Release”. Теперь при сборке и запуске программы можно выбирать профиль “Debug” или “Release”.