Правила программирования на С и С++. Главы 1-6 - Помечайте конец длинного составного оператора чем-нибудь, имеющим смысл

ОГЛАВЛЕНИЕ

 

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

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

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.