Проверка стиля кодирования для C - PullRequest
19 голосов
/ 04 января 2009

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

Какой инструмент мы должны использовать, если вообще?

ПРИМЕЧАНИЕ: я ищу что-то для кода C, хотя что-то, что работает для C ++, также было бы хорошо.

Ответы [ 9 ]

12 голосов
/ 05 января 2009

Традиционный beautifier отступ , доступный на каждой машине Unix. В некоторых версиях есть GNU indent , который можно скомпилировать и установить на любой машине. Отступ GNU может прочитать набор правил из файла ~/.indent.pro, например:

--original --dont-format-first-column-comments --no-blank-lines-after-commas --parameter-indentation 8 --indent-level 8 --line-length 85 --no-space-after-parentheses --no-comment-delimiters-on-blank-lines 

Таким образом, выполнение отступа перед передачей гарантирует единообразие представления. Если вы хотите принудительно применить , определите в используемой вами Системе управления версиями ловушку перед фиксацией, которая будет запускать отступ и отклонять фиксацию, если зафиксированная версия отличается от того, что создает отступ.

10 голосов
/ 04 января 2009

Вы ищете кодовое обозначение . Uncrustify бесплатно.

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

9 голосов
/ 04 января 2009

AStyle делает то, что вы хотите:

Artistic Style - это индентор, форматировщик и beautifier исходного кода для языков программирования C, C ++, C # и Java.

Для Eclipse доступен Плагин AStyle .

Eclipse также имеет форматировщик кода, но я не уверен, работает ли он в CDT.

4 голосов
/ 04 января 2009

Есть (или были) многочисленные инструменты для этого. Одним из самых старых является cb (C Beautifier), который был в древних версиях Unix - в данном случае это означает, что версия 7 Unix:

CB ( 1 ) UNIX Programmer’s Manual CB ( 1 )

NAME
    cb – C program beautifier
SYNOPSIS
    cb
DESCRIPTION
   Cb places a copy of the C program from the standard input on the standard
   output with spacing and indentation that displays the structure of the
   program.
BUGS

GNU indent - значительно более сложный и настраиваемый beastie. Были и коммерческие инструменты. Например, Abraxas Software предоставляет, например, инструмент CodeCheck; мы кратко использовали это в середине 90-х, но изменения, которые он хотел, чтобы мы сделали (были очень необходимы, но) слишком навязчивы для управления.

3 голосов
/ 17 сентября 2015

Вы можете использовать clang-format. Более подробную информацию можно найти на официальном сайте: http://clang.llvm.org/docs/ClangFormat.html

2 голосов
/ 20 мая 2013

Попробуйте UniversalIndentGUI , который представляет собой оболочку с графическим интерфейсом для популярных инденторов / украшений, таких как Uncrustify, Artistic Style и GNU Indent. Его графический пользовательский интерфейс и функция предварительного просмотра позволяют очень легко пробовать разные отступы, и как только вы найдете нужный вам индентор и конфигурацию, вы можете экспортировать конфигурацию или даже экспортировать скрипт оболочки. Отлично, если вы все еще пробуете вещи.

2 голосов
/ 11 февраля 2010

Из аналогичного вопроса: Вера ++ :

Vera ++ - это программируемый инструмент для проверки, анализа и преобразование исходного кода C ++.

Основные сценарии использования, которые предусмотрены для Vera ++:

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

Предоставление метрик и статистики исходного кода.

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

2 голосов
/ 04 января 2009

Я бы поспорил против использования формального инструмента здесь. Лучшее применение стандартов кодирования - давление со стороны сверстников. Давление со стороны сверстников и взаимное уважение между членами команды являются ключевыми элементами этой среды построения команды ... ничем не отличается от добродушных преследований, которые необходимы, когда кто-то непреднамеренно "ломает сборку" и т. Д.

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

0 голосов
/ 11 февраля 2010

Пожалуйста, используйте VIM и наслаждайтесь легкостью. Вы можете делать все, что связано с программированием исходного кода, с помощью простых команд. Также вы можете сделать VIM более надежным и мощным, отредактировав файл .vimrc. Помощь в этом вам очень поможет.

/ рэнджит г

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...