Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Либерти Джесс. Освой самостоятельно С++ за 21 день. - royallib.ru.rtf
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.55 Mб
Скачать

Стиль программирования

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

Следующие рекомендации совершенно ни к чему вас не обязывают. Они основаны на ряд принципов, которых я придерживаюсь при работе над проектами и которые нахожу полезными. Вы можете выработать собственные правила, но приведенные ниже помогут выделить основные моменты, на которые следует обратить внимание.

Хотя в жизни чрезмерная пунктуальность нас раздражает, тем не менее строгое соблюдение стиля при написании программы поможет вам и вашим коллегам эффективнее использовать и модернизировать однажды написанный код. Постарайтесь выработать собственный стиль программирования и затем относитесь к нему так, как к уголовному кодексу, нарушение которого карается законом.

Отступы

Отступ табуляции должен составлять четыре пробела. Убедитесь в том, что ваш редактор преобразует каждую табуляцию в четыре пробела.

Фигурные скобки

Способ выравнивания фигурных скобок вызывает, возможно, самые бурные споры между программистами C++ и С. Я лично придерживаюсь следующих правил:

• пара фигурных скобок должна быть выровнена по вертикали;

• фигурные скобки первого уровня в определении или объявлении должны быть выровнены по левому полю. Все строки блока объявления или определения записываются с отступом. Все вложенные пары фигурных скобок должны быть выровнены по одной линии со строкой программы, за которой начинается этот блок;

• строки блока никогда не должны находиться на одной линии с фигурными скобками, обрамляющими этот блок, например:

if (condition==true)

{

   j = k;

   SomeFunction();

}

m++;

Длинные строки

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

В языке C++ функции часто оказываются более короткими, чем в С, но по- прежнему остается в силе старый добрый совет: старайтесь сохранять свои функции достаточно короткими, чтобы всю функцию можно было увидеть на экране.

Конструкции с оператором switch

В конструкциях с оператором switch используйте отступы таким образом, чтобы четко выделить различные варианты:

switch(переменная)

{

   case Значение_1:

      Oперация_1();

      break;

   case Значение_2:

      Операция_2();

      break;

   default;

      assert("Ошибочное действие");

      break;

}

Текст программы

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

• Используйте пробелы, чтобы сделать текст программы более разборчивым.

• Не используйте пробелы внутри ссылок на объекты и массивы (., ->, [ ]).

• Унарные операторы логически связаны со своими операндами, поэтому не ставьте между ними пробелов. К унарным операторам относятся следующие: !, ^, ++, --, -, * (для указателей), & (преобразования типа), sizeof.

• Бинарные операторы должны иметь пробелы с обеих сторон: +, =, *, /, %, >>, <<, <, >, ==, !=, &, I, &&, ||, ?:, -=, += И Т.Д.

• Не используйте отсутствие пробелов для обозначения приоритета (4+ 3*2).

• Ставьте пробелы после запятых и точек с запятой, но не перед ними.

• Круглые скобки не должны отделяться пробелами от заключенных в них параметров.

• Ключевые слова, такие как if, следует отделять пробелами: if (а == b).

• Текст комментария следует отделять пробелом от символов //.

• Размещайте спецификаторы указателей и ссылок рядом с именем типа, а не с именем переменной, т.е.

char* foo;

int& theInt;

а не:

char *foo;

int &theInt;

• Не объявляйте больше одной переменной в одной строке.