Помечайте конец длинного составного оператора чем-нибудь, имеющим смысл
Прежде всего, подобные комментарии в конце блока:
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.