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

       

Помечайте конец длинного составного оператора чем-нибудь, имеющим смысл


Прежде всего, подобные комментарии в конце блока:

while( a b )

{

    for( i = 10; --1 = 0; )

    {

       f( i );

    } // for

} // while

не дают ничего, кроме неразберихи, если блоки короткие. Я использую их только тогда, когда составной оператор слишком велик, чтобы поместиться на экран (в моем текстовом редакторе около 40 строк) или в нем столько уровней вложений, что я не могу понять суть происходящего. Комментарии в конце блока обычно целесообразны в больших составных операторах, но мне приходилось часто видеть подобный код:

На первой странице:

while( a b )

{

    while( something_else() )



    {

        for( i = 10; --1 = 0; )

        {

            for( j = 10; --j = 0; )

            {

// далее идет масса кода

На какой-то из последующих страниц:

            } // for

        } // for

    } // while

} // while

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

            } //       for( j = 10; --j = 0; )

        }    //     for( i = 10; --1 = 0; )

    }       //   while( something_else() )

}          // while( a b )

Так как #ifdef

почти всегда расположен на некотором расстоянии от #endif, то я всегда ставлю метку у #endif:

#ifndef __SOMEFILE_H_

#define __SOMEFILE_H_

// здесь следует 1000 строк программы

#endif // __SOMEFILE_H_

То же самое я делаю с #else.



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