2011-11-03 8 views
5

Estoy heredando una base de código bastante grande que desafortunadamente muestra una gran cantidad de "malos hábitos". Una de mis mayores manías personales de declarar varias variables en una expresión como la siguiente:¿Herramienta para detectar problemas de estilo para el código de C++?

int x, y, z; 

personalmente, prefiero:

int x; 
int y; 
int z; 

esto me permite ajustar fácilmente los tipos de forma individual, y evita problemas con tipos de puntero como este:

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

Además, me gustaría para detectar cuando un tipo cuyo tamaño es más grande que sizeof(void*) se pasa por valor.

Hay otros problemas de "estilo" que también me gustaría detectar y corregir, pero estos son los IMO más molestos. ¿Cuáles son las mejores herramientas para esto?

+0

Muchas buenas herramientas se mencionan a continuación, pero nada puede superar la revisión del código. –

Respuesta

2

Una de las mejores herramientas que he usado para verificar el estilo de los archivos C++ es el KWStyle. Sin embargo, no estoy muy seguro de si es compatible con todos sus requisitos.

+0

Estoy aceptando esta respuesta. A pesar de que me he conformado con una revisión de código lenta pero constante. Esta respuesta fue la más directamente aplicable a mi pregunta. –

1

Mi sensación es que el estilo que desea utilizar es específico para sus necesidades. Entonces necesita personalizar una herramienta para hacer los controles por usted.

Creo que su ejemplo (suponiendo que su código base sea lo suficientemente grande como para hacer que valga la pena el esfuerzo) es un muy buen caso para la personalización del compilador.

reciente (es decir, 4.6) versiones de GCC pueden extenderse a través de plugins, y también se puede extender mediante la personalización de GCC usando GCC MELT, que es un lenguaje específico dominio de alto nivel para facilitar el desarrollo de extensiones del CCG.

Por supuesto, para ampliar GCC (ya sea mediante la codificación de complementos en C, o extensiones en MELT), tiene que entender sus representaciones internas (especialmente el árbol Gimple &), lo que sí requiere cierto trabajo.

P.S. Soy el desarrollador principal de GCC MELT.

+0

GCC MELT parece realmente genial, definitivamente lo veré en algún momento. si no fuera por este proyecto, ciertamente hay cosas geniales que puedo hacer en otro lugar. –

+0

Entonces contácteme, o al [email protected] porque MELT está muy mal documentado ... –

1

Puede probar cppcheck para el análisis de código estático. This question y sus respuestas proporcionan más pistas sobre las herramientas para el análisis de código estático.

+0

cppcheck está demostrando ser muy bueno en la búsqueda de problemas básicos comunes con el código, pero definitivamente tiene menos enfoque en estilo. –

2

utilizo Artistic Style or astyle para dar formato a mis códigos de C++ y Java desde alrededor de 2 Years.It se pueden personalizar en gran detail.Probably hay muchas mejores ahora ...

, pero es muy útil para mí.

Cuestiones relacionadas