Вход/Регистрация
Программирование. Принципы и практика использования C++ Исправленное издание
вернуться

Страуструп Бьерн

Шрифт:

int main

{

cout << "Hello, World!\n";

return 0;

}

К сожалению, компилятор снова сообщает об ошибке, так как мы сделали опечатку в строке

std_lib_facilities.h
. Компилятор заметил это.

#include "std_lib_facilities.h

int main

{

cout << "Hello, World!\n;

return 0;

}

В этом примере мы пропустили закрывающую двойную кавычку (

"
). Компилятор указывает нам на это.

#include "std_lib_facilities.h"

integer main

{

cout << "Hello, World!\n";

return 0;

}

Теперь мы вместо ключевого слова

int
использовали слово
integer
, которого в языке С++ нет. Компилятор таких ошибок не прощает.

#include "std_lib_facilities.h"

int main

{

cout < "Hello, World!\n";

return 0;

}

Здесь вместо символов

<<
(оператор вывода) использован символ
<
(оператор “меньше”). Компилятор это заметил.

#include "std_lib_facilities.h"

int main

{

cout << 'Hello, World!\n';

return 0;

}

Здесь вместо двойных кавычек, ограничивающих строки, по ошибке использованы одинарные. Приведем заключительный пример.

#include "std_lib_facilities.h"

int main

{

cout << "Hello, World!\n"

return 0;

}

В этой программе мы забыли завершить строку, содержащую оператор вывода, точкой с запятой. Обратите внимание на то, что в языке С++ каждая инструкция завершается точкой с запятой (

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

Пока просто запомните правило: точку с запятой следует ставить после каждого выражения, которое не завершается закрывающей фигурной скобкой.

Почему мы посвятили две страницы и несколько минут вашего драгоценного времени демонстрации тривиальных примеров, содержащих тривиальные ошибки? Для того чтобы в будущем вы не тратили много времени на поиск ошибок в исходном тексте программы. Большую часть времени программисты ищут ошибки в своих программах. Помимо всего прочего, если вы убеждены, что некий код является правильным, то анализ любого другого кода покажется вам пустой тратой времени. На заре компьютерной эры первые программисты сильно удивлялись, насколько часто они делали ошибки и как долго их искали. И по сей день большинство начинающих программистов удивляются этому не меньше.

Компилятор иногда будет вас раздражать. Иногда кажется, что он придирается к несущественным деталям (например, к пропущенным точкам с запятыми) или к вещам, которые вы считаете абсолютно правильными. Однако компилятор, как правило, не ошибается: если он выводит сообщение об ошибке и отказывается создавать объектный код из вашего исходного кода, то это значит, что ваша программа не в порядке; иначе говоря, то, что вы написали, не соответствует стандарту языка С++.

Компилятор не руководствуется здравым смыслом (он — не человек) и очень придирчив к деталям. Поскольку здравый смысл ему не ведом, он не пытается угадать, что на самом деле вы имели в виду, написав фрагмент программы, который выглядит абсолютно правильным, но не соответствует стандарту языка С++. Если бы он угадывал смысл программы и результат оказался бы неожиданным, то вы провели бы очень много времени, пытаясь понять, почему программа не делает то, что вы хотели. После того как все сказано и сделано, компилятор предохраняет нас от множества проблем. Он предотвращает намного больше проблем, чем создает сам.

Итак, помните: компилятор — ваш друг; возможно, лучший друг.

2.4. Редактирование связей

Программа обычно состоит из нескольких отдельных частей, которые часто разрабатываются разными людьми. Например, программа “Hello, World!” состоит из части, которую написали вы, и частей стандартной библиотеки языка С++. Эти отдельные части (иногда называемые единицами трансляции) должны быть скомпилированы, а файлы с результирующим объектным кодом должны быть связаны вместе, образуя выполняемый файл. Программа, связывающая эти части в одно целое, называется (вполне ожидаемо) редактором связей.

  • Читать дальше
  • 1
  • ...
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: