Читаем Программирование. Принципы и практика использования C++ Исправленное издание полностью

По мере продвижения вперед мы объясним эти возможности более подробно. Они написаны на стандартном языке С++, но содержат детали, в которые сейчас не стоит углубляться, отложив их изучение до следующих глав. Важность файла std_lib_facilities.h для данной программы заключается в том, что с его помощью мы получаем доступ к стандартным средствам ввода-вывода языка С++. Здесь мы просто используем стандартный поток вывода cout и оператор вывода <<. Файл, включаемый в программу с помощью директивы #include, обычно имеет расширение .h и называется заголовком (header), или заголовочным файлом (header file). Заголовок содержит определения терминов, таких как cout, которые мы используем в нашей программе.

Как компьютер находит точку, с которой начинается выполнение программы? Он просматривает функцию с именем main и начинает выполнять ее инструкции. Вот как выглядит функция main нашей программы “Hello, World!”:

int main // Программы на C++ начинаются с выполнения функции main

{

  cout << "Hello, World!\n"; // вывод "Hello, World!"

  return 0;

}

Для того чтобы определить отправную точку выполнения, каждая программа на языке С++ должна содержать функцию с именем main. Эта функция по существу представляет собой именованную последовательность инструкций, которую компьютер выполняет в порядке перечисления. Эта функция состоит из четырех частей.

• Тип возвращаемого значения, в этой функции — тип int (т.е. целое число), определяет, какой результат возвращает функция в точку вызова (если она возвращает какое-нибудь значение). Слово int является зарезервированным в языке С++ (ключевым словом), поэтому его нельзя использовать как имя чего-нибудь еще (см. раздел А.3.1).

• Имя, в данном случае main.

• Список параметров, заключенный в круглые скобки (см. разделы 8.2 и 8.6); в данном случае список параметров пуст.

• Тело функции, заключенное в фигурные скобки и перечисляющее действия (называемые инструкциями), которые функция должна выполнить.

Отсюда следует, что минимальная программа на языке С++ выглядит так:

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), называется инструкцией.

<p id="AutBody_Root021"><strong>2.3. Компиляция</strong></p>

С++ — компилируемый язык. Это значит, что для запуска программы сначала необходимо транслировать ее из текстовой формы, понятной для человека, в форму, понятную для машины. Эту задачу выполняет особая программа, которая называется компилятором. То, что вы пишете и читаете, называется исходным кодом, или текстом программы, а то, что выполняет компьютер, называется выполняемым, объектным, или машинным кодом. Обычно файлы с исходным кодом программы на языке С++ имеют расширение .cpp (например, hello_world.cpp) или .h (например, std_lib_facilities.h), а файлы с объектным кодом имеют расширение .obj (в системе Windows) или .o (в системе Unix). Следовательно, простое слово код является двусмысленным и может ввести в заблуждение; его следует употреблять с осторожностью и только в ситуациях, когда недоразумение возникнуть не может. Если не указано иное, под словом код подразумевается исходный код или даже исходный код, за исключением комментариев, поскольку комментарии предназначены для людей и компилятор не переводит их в объектный код.

Компилятор читает исходный код и пытается понять, что вы написали. Он проверяет, является ли программа грамматически корректной, определен ли смысл каждого слова. Обнаружив ошибку, компилятор сообщает о ней, не пытаясь выполнить программу. Компиляторы довольно придирчивы к синтаксису. Пропуск какой-нибудь детали, например директивы #include, двоеточия или фигурной скобки, приводит к ошибке. Кроме того, компилятор точно так же абсолютно нетерпим к опечаткам. Продемонстрируем это рядом примеров, в каждом из которых сделана небольшая ошибка. Каждая из этих ошибок является довольно типичной.

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT