Система визуального объектно-ориентированного проектирования C++Builder 101

Внизу окна видны сообщения о замечаниях и ошибках. Прежде, чем рассмат-
ривать их, отметим, что они размещены во встраиваемом окне сообщений. Как
всякое встраиваемое окно, вы можете вынуть его из окна Редактора Кода и сделать
самостоятельным или встроить, например, в окно Инспектора Объектов. Впрочем,
это окно достаточно удобно сохранить именно встроенным в Редактор Кода. Места
оно занимает немного. Вы можете также увеличить или уменьшить его размер до
желаемого.

Теперь рассмотрим полученные сообщения компилятора. Первое сообщение:

[C++ Warning] Udebug.срр(21): W8013 Possible use of 'A' before

definition.
([C++ Предупреждение] модуль Udebug.срр, строка 21: W8013 Переменная
'А' может использоваться до того, как ей присвоено значение)

Это предупреждение о том, что вы не инициализировали переменную А и ее
значение к моменту первого выполнения оператора в строке 21 не определено. Что-
бы узнать, что это за строка, достаточно щелкнуть мышью на этом предупрежде-
нии. Тогда в окне Редактора Кода выделится соответствующая строка текста. В
данном случае вы увидите, что речь идет об операторе

А *= 10000;         // 'увеличение А в 10000 раз

Действительно, мы ввели локальную переменную А и нигде не задали ее нача-
льное значение. С точки зрения компилятора это не ошибка, а замечание. Но для
программы это действительно логическая ошибка, так как неизвестно, чему будет
равно значение этой переменной при входе в цикл. Если мы хотим, например, что-
бы при каждом выполнении функции значение А равнялось 1, мы должны изме-
нить объявление переменной:

double А = 1;

или добавить перед циклом оператор:

А = 1;

Если же мы хотим, чтобы в переменной А накапливался результат при каж-
дом щелчке на кнопке, мы должны убрать ее объявление из функции и сделать пе-
ременную А глобальной, инициализировав ее в объявлении приведенным ранее
оператором.

Этот пример показывает, что не надо пренебрегать замечаниями компилятора.
Всегда лучше перед запуском на выполнение сначала только откомпилировать
проект и тщательно проанализировать каждое замечание. Только исправив все,
что требует исправления, имеет смысл выполнять приложение Это сэкономит вам
время, которое в противном случае вы потратите на поиск причин, по которым
ваша программа работает неправильно.

Хороший стиль программирования

Просматривайте все замечания компилятора и стремитесь найти и устранить причины, вы-
звавшие эти замечания. Игнорируя их вы рискует снизить надежность и эффективность
своего приложения.

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