Правила программирования на Си и Си++

       

Не используйте флагов завершения


Флаг завершения типа "готов" едва ли нужен в Си или Си++. Его использование просто добавляет одну лишнюю переменную в процедуру. Не делайте так:

BOOL готов = FALSE;

while ( !готов )

{

    if ( некоторое_условие() )

    готов = 1;

}

Поступайте следующим образом:

while ( 1 )

{

    if ( некоторое_условие() )

    break;

}

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

Единственным исключением из этого правила является выход из вложенных циклов в Си++, где оператор goto может привести к пропуску программой вызова конструктора или деструктора. Эта проблема была рассмотрена в правиле 54.



Содержание раздела