Используйте аккуратные столбцы везде, где можно
Так как форматирование по сути является видом комментирования, то это правило применяйте также и к тексту программы. Два следующих блока функционально одинаковы, но заметьте, насколько легче искать имена переменных во втором блоке, причем не из-за выравнивания комментариев, а потому что имена образовали аккуратный столбец:
int x; // Опишите, что делает x.
unsigned long int (*pfi)(); // Опишите, что делает pfi.
const char *the_variable; // Опишите, что делает the_variable.
int z; // Опишите, что делает z.
x = 10; // Здесь идет комментарий.
the_variable = x; // Здесь второй комментарий.
z = x; // A здесь третий.
по сравнению с:
int x; // Опишите, что делает x.
unsigned long int ( *pfi )(); // Опишите, что делает pfi.
int z; // Опишите, что делает z.
const char *the_variable; // Опишите, что делает
// the_variable.
x = 10; // Здесь идет комментарий.
the_variable = x; // Здесь второй комментарий.
z = x; // A здесь третий.
Вы можете рассматривать на этот вид форматирования как по сути "табличный", как если бы я создал таблицу со столбцами "тип", "имя" и "описание".
Другим хорошим местом для использования столбцов является список инициализации элементов в Си++, который я форматирую следующим образом:
class derived : public base
{
string str;
const int x;
public:
derived( char
*init_str, int init_x ) {}
}
derived::derived(
char *init_str, int init_x )
:base( str, x )
,str ( init_str )
,x ( init_x )
{}