Инструменты пользователя

Инструменты сайта


// Мой "C/C++ Coding Style" версия 1.1 + Astyle

Подправил малость стандарт кодирования для своих проектов, из изменений:

  • Для функций, в которых производятся действия по инициализации допускается использовать префикс init (сокращенный вариант initialize)
  • Убрана жесткая рекомендация по использованию 0 вместо NULL в C++
  • Добавлена рекомендация использовать calloc вместо malloc в C
  • Добавлена рекомендация добавлять пробел после ключевого слова языка и открывающей скобкой
  • Рекомендация не использовать одиночные блоки if, while, for и т.п.
  • Добавлена рекомендация по использованию astyle с учетом стандартов перечисленных здесь.

Более подробно про Astyle.

Сама программа является достаточно мощным форматировщиком кода, причем с приятной документацией (для почти всегда достаточно простого astyle –help).

Моя команда astyle выглядит так:

astyle --style=ansi --indent=spaces=4 \
          --indent-classes --indent-switches --indent-preprocessor --indent-col1-comments \
          --max-instatement-indent=24 --min-conditional-indent=4 \
          --pad-oper --pad-header --unpad-paren --add-brackets \
          --convert-tabs --align-pointer=name \
          <source_file_name> 

По опциям пробежимся (за подробностями в astyle –help):

  • –style=ansi - базовый стиль форматирования, что бы на каждый чих установки не делать
  • –indent=spaces=4 - выравнивание пробелами, использовать 4 оных
  • –indent-classes - делать отступ для protected:, private: и т.д.
  • –indent-switches - делать отступ у case внутри switch
  • –indent-preprocessor - отступ у многострочных макроопределений
  • –indent-col1-comments - делать отступ однострочным комментариям (???)
  • –max-instatement-indent=24 - при разбивке выражения на строки, следующая строка обычно выравнивается по предыдущей, в частности, по открывающей скобке. Это опция ограничивает максимальный отступ в 24 символа
  • –min-conditional-indent=4 - ??? задал по аналогии :)
  • –pad-oper - делает отступы вокруг операторов, после запятых, точек с запятой, если просто - делает более удобочитаемыми математические выражения
  • –pad-header - делает отступы после ключевых слов языка и перед открывающимися скобками (у if, while, for и т.д.)
  • –unpad-paren - а вот ненужые удаляет (типа после функции), можно использовать только когда нужно
  • –add-brackets - обрамляет однострочные блоки в фигурные скобки
  • –convert-tabs - преобразует табуляцию в пробелы (эквивалентное количество, задано выше)
  • –align-pointer=name сдвигает *, & в определении к имени переменной, т.е. преобразует char* ptr или char * ptrchar *ptr

Комментарии