102 Глава 2

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

Как правило, инициализируйте все переменные при их объявлении. Это избавит вас от пло-
хо отлавливаемых перемежающихся ошибок выполнения.

Вернемся теперь к рис. 2.33. Второе сообщение компилятора:

[C++ Error] Udebug.cpp(22): E2451 Undefined symbol 'В'.
([C++ Ошибка] модуль Udebug.cpp, строка 22: E2451

Необъявленный идентификатор 'В')

Это уже сообщение об ошибке. В данном случае в операторе

Labell->Caption = "А = " + В;

вместо переменной А мы указали переменную В, которая не была объявлена. Стро-
ка кода с этой ошибкой выделена в окне Редактора Кода и курсор остановился око-
ло необъявленного идентификатора. Ошибки такого рода будут у вас чаще всего —
это результат описки в имени переменной, компонента, свойства, метода, функ-
ции.

Поскольку рассмотренная выше ошибка неисправима, то в данном примере
выполняемый модуль не 4эормируется и приложение не выполняется.

Третье сообщение компилятора:

[C++ Warning] Udebug.срр(23): W8080 'j' is declared but never used.
([C++ Предупреждение] модуль Udebug.cpp, строка 23: W8080 Переменная
'j' объявлена, но нигде не используется)

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

Итак, наш пример не откомпилировался из-за ошибки с использованием не-
объявленной переменной В.

Если вы исправите в ошибочном операторе переменную В на А, то, увы, полу-
чите новое сообщение об ошибке:

[C++ Error] Udebug.срр(22): Е2060 Illegal use of floating point.
([C++ Ошибка] модуль Udebug.cpp, строка 22: E2060 Недопустимое
использование плавающей точки)

Действительно, в правой части оператора

Labell->Caption = "А = " + А;

складывается строка "А = " и переменная с плавающей точкой А. Подобные ошиб-
ки использования несовместимых типов тоже очень распространены и вы, вероят-
но, не раз невольно будете их делать.

Правильный оператор в нашем примере должен иметь вид:

Labell->Caption •= "А = " + FloatToStr(А);

Итак, после всех исправлений ваш код может иметь вид:

double А = 1;

void _fastcall TFormI::ButtonlClick(TObject *Sender)
(

int i;

for(i =0; i < 50; i++)
A *= 10000;

Labell->Caption = "A = " + FloatToStr(A);

Теперь откомпилируйте ваше приложение и выполните его.