Подправил малость стандарт кодирования для своих проектов, из изменений:
- Для функций, в которых производятся действия по инициализации допускается использовать префикс init (сокращенный вариант initialize)
- Убрана жесткая рекомендация по использованию 0 вместо NULL в C++
- Добавлена рекомендация использовать calloc вместо malloc в C
- Добавлена рекомендация добавлять пробел после ключевого слова языка и открывающей скобкой
- Рекомендация не использовать одиночные блоки if, while, for и т.п.
- Добавлена рекомендация по использованию astyle с учетом стандартов перечисленных здесь.
Более подробно про Astyle.
Сама программа является достаточно мощным форматировщиком кода, причем с приятной документацией (для почти всегда достаточно простого astyle –help).
Моя команда astyle выглядит так:
astyle --style=ansi --indent=spaces=4 <br/>
--indent-classes --indent-switches --indent-preprocessor --indent-col1-comments <br/>
--max-instatement-indent=24 --min-conditional-indent=4 <br/>
--pad-oper --pad-header --unpad-paren --add-brackets <br/>
--convert-tabs --align-pointer=name <br/>
<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 * ptr
->char *ptr