Не используйте флагов завершения
Флаг завершения типа "готов" едва ли нужен в Си или Си++. Его использование просто добавляет одну лишнюю переменную в процедуру. Не делайте так:
BOOL готов = FALSE;
while ( !готов )
{
if ( некоторое_условие() )
готов = 1;
}
Поступайте следующим образом:
while ( 1 )
{
if ( некоторое_условие() )
break;
}
Многие программисты привыкли использовать флаги завершения, когда они учились программированию, в основном потому, что языки программирования типа Паскаля не поддерживают богатый набор управляющих операторов, имеющийся в Си.
Единственным исключением из этого правила является выход из вложенных циклов в Си++, где оператор goto может привести к пропуску программой вызова конструктора или деструктора. Эта проблема была рассмотрена в правиле 54.