c的编码样式检查器(变量名,而不是缩进)

时间:2011-03-29 15:24:06

标签: c coding-style naming-conventions

This question询问编码风格检查器,但焦点似乎是缩进和支撑位置。 GNU缩进处理缩进(这在代码库中不是问题,非常令人惊讶)。

我正在处理一堆充满各种命名方案的代码:camelCase,everythingruntogetherinlowercase,underscores_as_separators,SomeStructsEndWithT等。

我希望能够选择一个约定,并且至少自动检查新的更改是否符合惯例。

是否有一个很好的工具来检查C中的命名?像Python的pep8检查工具,我不想要美化。

感谢。

3 个答案:

答案 0 :(得分:3)

看起来Google的cpplint(一种C ++风格检查程序)可能会被提交入侵,以便像我想要的那样检查C.

(我仍然有兴趣知道那里是否有更好的傻瓜。)

答案 1 :(得分:2)

这是一个非正统的选择,但如果你愿意花半天时间,我会选择cxref。它是一个交叉引用器,附带源代码,它有一个干净的解析器,不构建解析树。然而,使用几行代码,您可以转储所有变量来检查它们,或者将它们重写为您喜欢的样式(或者如果您像我一样懒惰而不是重写,则可以为emacs / sed生成替换命令)。我只是设法为Mac构建它。

答案 2 :(得分:1)

这个帖子中已经有很多答案Coding style checker for C

Vera ++可能是最有前途的,因为大多数其他建议是格式化程序而不是验证程序。这是一个关于运行vera ++的网页 https://bitbucket.org/verateam/vera/wiki/Running

https://bitbucket.org/verateam/vera/downloads/vera++-1.1.1.tar.gz下载 编译提出了一些问题:

最后,在C ++文件上运行它会产生类似输出(为简洁省略重复错误):

../dllist.c:1: no copyright notice found
../dllist.c:4: horizontal tab used
../dllist.c:10: horizontal tab used
../dllist.c:10: closing curly bracket not in the same line or column
../dllist.c:29: horizontal tab used
../dllist.c:38: keyword 'if' not followed by a single space
../dllist.c:38: negation operator used in its short form
../dllist.c:40: horizontal tab used
../dllist.c:40: full block {} expected in the control structure
../dllist.c:42: horizontal tab used
../dllist.c:71: keyword 'if' not followed by a single space
../dllist.c:71: negation operator used in its short form
../dllist.c:72: horizontal tab used
../dllist.c:72: full block {} expected in the control structure
../dllist.c:73: horizontal tab used