Страница 34 из 93 30. Используйте аккуратные столбцы везде, где можно.
Так как форматирование по сути является видом комментирования, то это правило применяйте также и к тексту программы. Два следующих блока функционально одинаковы, но заметьте, насколько легче искать имена переменных во втором блоке, причем не из-за выравнивания комментариев, а потому что имена образовали аккуратный столбец: 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 ) {} |