2011-11-03 22 views
5

我正在继承一个相当庞大的代码库,不幸的是它展示了很多“坏习惯”。我的一个最大的个人的眼中钉的声明几个变量在一个表达式是这样的:为C++代码检测样式问题的工具?

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。什么是最好的工具呢?

+0

下面提到了很多很好的工具,但没有什么能胜过代码审查。 –

回答

2

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

+0

我接受这个答案。即使我已经解决了一个缓慢而稳定的代码审查。这个答案是最直接适用于我的问题。 –

1

我的感觉是,你想使用的风格是特定于你的需求。所以你需要定制一个工具来为你做检查。

我相信你的例子(假设你的代码库足够大,使得努力值得)是一个非常好的情况下编译器定制

最近(即4.6)的GCC版本可以扩展通plugins,并且还可以通过使用GCC MELT,这是一个高级别域专用语言缓解GCC扩展的发展定制它延伸GCC。当然,要扩展GCC(通过编码C语言中的插件或者MELT中的扩展),你必须理解它的内部表示(特别是Gimple &树),这需要一些工作。

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

+0

GCC MELT看起来非常酷,我一定会在某个时候检查一下。如果不是这个项目,肯定有很酷的东西,我可以在其他地方用它做! –

+0

然后请联系我或[email protected],因为MELT的记录确实很糟糕...... –

1

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

+0

cppcheck被证明能很好地发现代码中的基本常见问题,但绝对没有重点关注样式。 –

2

我用Artistic Style or astyle格式化我的C++代码和JAVA距今约2 Years.It可以在很大的定制detail.Probably有很多更好的现在......

但我很有用。