检测c ++代码样式问题的工具?

时间:2011-11-03 16:08:42

标签: c++ coding-style

我继承了一个相当大的代码库,不幸的是它表现出很多“坏习惯”。我最大的个人宠儿之一就是在一个表达式中声明几个变量:

int x, y, z;
个人而言,我更喜欢:

int x;
int y;
int z;

这使我可以轻松地单独调整类型,并避免像这样的指针类型的问题:

int *x, y, z; // whoops I meant to make y and z pointers too!

另外,我很想检测何时通过值传递大小大于sizeof(void*)的类型。

还有其他“风格”问题我想检测并纠正,但这些是最讨厌的IMO。有什么最好的工具呢?

4 个答案:

答案 0 :(得分:2)

我用过的最好的工具之一,用于检查C ++文件的样式是KWStyle。但是我不太确定它是否支持您的所有要求。

答案 1 :(得分:2)

我使用Artistic Style or astyle来格式化我的C ++和JAVA代码大约2年。它可以非常详细地定制。可能现在有很多更好的...

但它对我非常有用。

答案 2 :(得分:1)

我的感觉是您想要使用的风格是根据您的需求而定的。所以你需要自定义一个工具来为你做检查。

我相信你的例子(假设你的代码库大到足以让努力变得有价值)是编译器定制的非常好的案例

GCC的最近(即4.6)版本可以通过plugins进行扩展,您也可以使用GCC MELT自定义它来扩展GCC,这是高级别领域特定语言,以简化GCC扩展的开发。

当然,要扩展GCC(通过编写C中的插件或MELT中的扩展),您必须了解其内部表示(特别是Gimple& Tree),这确实需要一些工作。

P.S。我是GCC MELT的主要开发人员。

答案 3 :(得分:1)

您可以尝试cppcheck进行静态代码分析。 This question及其答案提供了有关静态代码分析工具的更多提示。