2011-11-03 18 views
5

Maalesef çok fazla "kötü alışkanlık" sergileyen oldukça büyük bir kod tabanını miras alıyorum. Benim en büyük kişisel pet peeves böyle bir ifadede, birçok değişken deklare: şahsenC++ kodu için stil sorunlarını tespit etmek için araç?

int x, y, z; 

, tercihim:

int x; 
int y; 
int z; 

bu beni kolayca tek tek tip ayarlamasını sağlar ve ilgili sorunları önler böyle işaretçi türleri:

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

, ben bunun ölçüsü, tip sizeof(void*) daha büyük değer geçirilir ediliyor olduğunda algılamak isteriz.

Diğer "stil" sorunları da bulmak ve düzeltmek istiyorum, ancak bunlar en sinir bozucu IMO'dur. Bunun için en iyi araçlar neler?

+0

Aşağıda pek çok iyi araç belirtilmiştir, ancak hiçbir şey kod incelemesini geçemez. –

cevap

2

Kullandığım en iyi araçlardan biri, C++ dosyalarının stilini denetlemek için KWStyle'dur. Ancak, tüm gereksinimlerinizi destekleyip desteklemediğinden emin değilim. detail.Probably çok iyi olanlar ... şimdi

Ama bana onun çok yararlı orada

+0

Bu cevabı kabul ediyorum. Yavaş ama düzenli bir kod incelemesine yerleşmiş olmama rağmen. Bu cevap en doğrudan soruma uygulandı. –

1

Duygularım, kullanmak istediğiniz stilin ihtiyaçlarınıza özel olması. Bu nedenle, sizin için çekleri yapmak için bir aracı özelleştirmeniz gerekiyor.

Örneğinizin (kod tabanınızın çabaya değer olması için yeterince büyük olduğunu varsayarak), derleyici özelleştirme için çok iyi durumda olduğuna inanıyorum.

Son GCC sürümleri plugins aracılığıyla uzatılabilir ve ayrıca GCC uzantıları gelişimini kolaylaştırmak için bir üst düzey etki alanı belirli bir dil olduğunu GCC MELT, kullanarak özelleştirerek GCC uzatabilirsiniz (4.6) olarak değiştirilir. Tabii ki, GCC'yi genişletmek için (ya C içindeki eklentileri veya MELT'deki uzantıları kodlayarak), içsel gösterimlerini (özellikle Gimple & Ağacı) anlamak zorundasınız.

P.S. GCC MELT'in ana geliştiricisiyim.

+0

GCC MELT gerçekten harika görünüyor, kesinlikle bir noktada kontrol edeceğim. Bu proje için değilse, kesinlikle başka bir yerde onunla yapabileceğim harika şeyler var! –

+0

MELT gerçekten kötü bir şekilde belgelendiğinden, lütfen bana veya [email protected]'a ulaşın. –

1

Statik kod analizi için cppcheck deneyebilirsiniz. This question ve yanıtları, statik kod analizi için daha fazla ipucu sağlar.

+0

cppcheck, kodla ilgili temel ortak sorunları bulmakta çok iyi olduğunu kanıtlıyor, ancak kesinlikle daha az odaklanmış tarzı. –

2

Ben yaklaşık 2 years.It beri benim C++ kodları ve JAVA biçimlendirme için Artistic Style or astyle kullanmak harika özelleştirilebilir vardır.

İlgili konular