С — это язык программирования, созданный в 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.
Язык 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
.
Для начала можно считать, что все строки, кроме пятой, являются некоторым набором “заклинаний”, без которых программа не будет работать и которые обязательно нужно указать, а вот пятую строку можно заменить на другие строки с различными инструкциями.
Большинство сред разработки (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.