This question询问编码风格检查器,但焦点似乎是缩进和支撑位置。 GNU缩进处理缩进(这在代码库中不是问题,非常令人惊讶)。
我正在处理一堆充满各种命名方案的代码:camelCase,everythingruntogetherinlowercase,underscores_as_separators,SomeStructsEndWithT等。
我希望能够选择一个约定,并且至少自动检查新的更改是否符合惯例。
是否有一个很好的工具来检查C中的命名?像Python的pep8检查工具,我不想要美化。
感谢。
答案 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下载 编译提出了一些问题:
sudo apt-get install libboost-dev tcl-dev
tcl.h
tcl/tcl.h
make BOOST_DIR=/home/fluffy/tmp/boost_1_53_0
~/.vera++/profiles/
,但不会自动创建默认值(但可以从发行版中复制)最后,在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