Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan biri kullanılarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut karmaşıklığıdır.
Program:
ADI
karmaşıklık - C kaynağının karmaşıklığını ölçün
SİNOPSİS
karmaşıklık [bayraklar] [-bayrak [değer]] [--seçenek-adı[[=| ]değer]] [ ... ]
Bu programın üzerinde çalıştığı işlenenler ya komut satırında belirtilebilir ya da
standart girdiden, satır başına bir tane oku. Bu girdide, baştaki ve sondaki beyaz boşluk
sıyrılır, boş satırlar yoksayılır. Standart giriş bir terminal olmayabilir.
Kaynak kodun karmaşıklığını yalnızca kodda yol sayımıyla değil, aynı zamanda
ayrıca mantık düzeyinde yuvalama yoluyla satır sayılarını yükseltir.
Yorumsuz kaynağın satırlarını sayarak ve bununla çarparak kodun karmaşıklığını hesaplayın.
iç içe bir mantık ağırlık faktörü. Varsayılan olarak, 1.9.
AÇIKLAMA
Her ifadenin ağırlığı, ifadenin kullandığı satır sayısıdır. Bu değer
her bir mantık katmanı için iç içe mantık ağırlığı (varsayılan olarak 1.9) ile çarpılır. İçin
örneğin, bu snippet:
eğer (foo) {
eğer (çubuk) {
bomboş; baz;
}
}
11 puan alacaktır. Bu puan daha sonra yaklaşık olarak ölçeklenir. pmccabe 20 ile bölerek sonuçlar
ve yuvarlama. Bu, sonunda "1" puan alır. pmccabe basit prosedürlerde daha yüksek puanlar ve
karmaşıklık daha derin iç içe mantıkla daha yüksek puanlar alır.
Puanlama ayarlanarak ince ayar yapılabilir. --nesting-cezası ve --ölçek-faktörler.
Milyonlarca satırın ortalama sonuçları karşılaştırılarak varsayılan değerler kalibre edildi.
sonuçları ile kodun pmccabe.
Bu programın amaçları doğrultusunda, bir prosedür bir adla ve ardından bir adla tanımlanır.
parantez içine alınmış ifade ve ardından bir açık kaşlı ayraç. Bir kapanış kıvırcık ile biter
1. sütunda parantez.
Bu program, işlevini komut satırında belirtilen her dosya veya her dosya için gerçekleştirir.
stdin'den okunan bir listede adlandırılmış dosya. Bağımsız değişkenler veya giriş adları önceden mevcut olmalıdır
Dosyalar. Giriş listesi, boş satırlar veya ile başlayan satırlar olan yorumları içerebilir.
bir karakter.
SEÇENEKLER
-t asgari, --eşik=asgari
Raporlama eşiği. Bu seçenek, argümanı olarak bir tamsayı alır. NS
varsayılan asgari bu seçenek için:
30
Bu eşiğin altında bir karmaşıklık ölçüsü olan prosedürleri yok sayın. Varsayılan olarak,
30'un altında bir karmaşıklık puanı yazdırılmaz. Ancak, eğer bir histogram ve
istatistikler yazdırılacak, ancak bireysel prosedür puanları değil, ardından varsayılan
sıfıra ayarlanır. Bu sınırın altındaki işlemler istatistiklerde sayılmaz.
--korkunç-eşik=asgari
sıfır çıkış eşiği. Bu seçenek, argümanı olarak bir tamsayı alır. NS
varsayılan asgari bu seçenek için:
100
Herhangi bir prosedür bu eşikten daha yüksek puan alırsa, program non-line olarak çıkacaktır.
sıfır. (4/COMPLEX_EXIT_HORRID_FUNCTION, başka bir sorunla karşılaşılmazsa.)
varsayılan olarak, bu program, bir işlev aşağıdaki korkunç puanı geçmedikçe sıfırdan çıkar.
100
-n faktör, --nesting-cezası=faktör
iç içe kod için puan çarpanı.
Dilsel yapılar, iç içe ne kadar derine yerleşirse o kadar ağırdır. Tarafından
varsayılan olarak, her katman 1.9 faktörü ile cezalandırılır. Seçenek argümanı bir
kayan nokta sayısı Ceza 1 olabilir, ancak daha az olamaz.
--demi-nesting-cezası=faktör
iç içe ifadeler için puan çarpanı.
Varsayılan olarak, bu değer 1.0 ile yuvalama cezasının ortasındadır.
(özellikle, yuvalama cezasının karekökü). bir
parantez içindeki alt ifade. Örneğin
((a > b) && (c > d))
parantez içine alınmış iki alt ifade içerir. Bu 3.5 puan sayılır. Üzerinde
diğer taraftan bu:
(a > b && c > d)
aynı seviyede iki ilişki operatörü ve bir mantıksal operatör içerir. Bunlar
yuvalanmış sayılar birlikte çarpılacak ve verim 2.5 * 2.5ya da 6.25. yapma
o. Aynı seviyede mantıksal ands ve ors varsa, daha da kötüleşir.
-s faktör, --ölçek=faktör
karmaşıklık ölçeklendirme faktörü. Bu seçenek, argümanı olarak bir tamsayı alır.
Varsayılan olarak, ölçeklendirme, ham puanı 20'ye bölen 20'dir.
kabaca karşılık gelecek şekilde normalleştirilmiş pmccabe puanlar:
0-9 Kolayca korunan kod.
10-19 Ufak bir sorunla bakımı yapılmıştır.
20-29 Biraz çaba ile korunur.
30-39 Kodu korumak zor.
40-49 Kodu korumak zor.
50-99 Sürdürülemez kod.
100-199 Çılgın zor kod yapma.
200+ Keşke sadece şaka yapsaydım.
Puan | ln-ct | nc-lns| dosya-adı(satır): proc-adı
4707 3815 2838 libre/vasnprintfc(1747): VASNPRINTF
-h, --histogram, --histogram yok
Karmaşıklık sayılarının histogramını görüntüleyin. NS histogramsız formu devre dışı bırakacak
seçenek. Bu seçenek, ortam değişkenleriyle veya
başlatma (rc) dosyaları.
Her işlevin puanını yazdırmak yerine, sonunda bir özet yazdırılır
kaç işlevin belirli puan aralıklarına sahip olduğunu gösterir. Meğer ki --skorlar is
özel olarak çağrıldığında, puanlar bu seçenek belirtilen şekilde yazdırılmaz. NS
minimum puanlama eşiği de sıfıra (0) düşürülecektir. --eşik is
belirtildi.
-c, --skorlar, --no-skorlar
Her prosedür için puanı görüntüleyin. NS puansız formu seçeneği devre dışı bırakacaktır.
Bu seçenek, ortam değişkenleriyle veya başlatma (rc) sırasında önceden ayarlanamayabilir.
dosyaları.
Eğer belirtirseniz --histogram, bireysel puanlar görüntülenmez, aksi takdirde
seçeneği belirtilir.
-I dizi, --görmezden gelmek=dizi
yoksayılacak prosedür adı. Bu seçenek sınırsız sayıda görünebilir.
Bazı kodlar, sözlük analizini karıştıran tanımlanmış makrolara sahiptir. Bu neden olacak
görmezden gelinmeleri. İşlevlerin yok sayılmasına neden olmanın diğer yolları şunlardır:
Prosedür başlığı için K&R sözdizimini kullanın.
Prosedür başlığını birleştirmek için bir ön işleme makrosu kullanın.
Kodunuzu basitleştirin.
Genel olarak konuşursak, normal C sözdizimini değiştiren herhangi bir şey yaptığınız her şeyi karıştıracaktır.
sözlük analizi. Bir prosedür görülmezse, sayılmaz. Eğer
bir prosedür içindeki kod anlaşılmaz, muhtemelen uygunsuz olacaksınız
Sonuçlar.
-H, --başlık yok
puanlama başlığı yazdırmayın. Bu seçenek ortam ile önceden ayarlanmamış olabilir
değişkenlerde veya başlatma (rc) dosyalarında.
Bir komut dosyası puanlama çıktısını işleyecekse, bir komut dosyası olmadan ayrıştırma daha kolaydır.
başlık. Histogram çıktısının her zaman bir başlığı olacaktır.
-u unifdef-opt, --unifdef=unifdef-opt
Kaynakları çalıştırın unifdef(1BSD). Bu seçenek sınırsız görünebilir
defalarca.
ile çevrili kod bölümlerini çıkarın #if/#endif direktifler. Seçenek
argüman, argüman olarak iletilir unifdef(1BSD) programı. Örneğin:
karmaşıklık -u-Dsembol
neden olur sembol tanımlanacak ve öncesindeki kod bölümlerini kaldıracak #ifndef
sembol direktifler.
Bakın unifdef daha fazla bilgi için belgeler.
--unif-exe=disiplin görevlisi
unifdef programını belirtin.
Girdiyi birleştirmek için kullanılacak alternatif program.
-i dosya adı, --giriş=dosya adı
dosya listesi dosyası.
Giriş dosyalarının bir komut satırı listesi veya bunları standart dosyalardan okumak yerine
girdi, bu dosyadaki dosyaların listesini okuyun.
--iz=dosya adı
iz çıktı dosyası.
Ara puanları bir izleme dosyasına yazdırın.
-?, --yardım et
Kullanım bilgilerini görüntüleyin ve çıkın.
-!, --Daha fazla yardım
Genişletilmiş kullanım bilgilerini bir çağrı cihazından geçirin.
-> [cfg dosyası], --save-seçenekleri [=cfg dosyası]
Seçenek durumunu şuraya kaydedin: cfg dosyası. Varsayılan son yapılandırma dosyası
listelenen SEÇENEK PRESETS bölüm, aşağıda. Komut güncellemeden sonra çıkacak
yapılandırma dosyası.
-< cfg dosyası, --load-ops'lar=cfg dosyası, --yüksüz-seçenekleri
Seçenekleri şuradan yükle: cfg dosyası. yüksüz seçenekler form yüklenmesini devre dışı bırakacak
önceki config/rc/ini dosyaları. --yüksüz-seçenekleri erken, düzensiz olarak işlenir.
-v [{v|c|n --versiyon [{v|c|n}]}]
Programın çıkış versiyonu ve çıkış. Varsayılan mod, basit bir versiyon olan 'v'dir.
'c' modu telif hakkı bilgilerini yazdıracak ve 'n' tüm telif hakkını yazdıracaktır.
Not.
SEÇENEK PRESETS
olarak işaretlenmemiş herhangi bir seçenek değil önceden ayarlanabilir değerleri yükleyerek önceden ayarlanabilir
yapılandırma ("RC" veya ".INI") dosya(lar)ı ve aşağıdaki adlı ortam değişkenlerinden alınan değerler:
KOMPLEKS_ or KOMPLEKSLİĞİ
Çevresel ön ayarlar, yapılandırmadan önce gelir (daha sonra işlenir)
Dosyalar. homerc dosyalar "$@/karmaşık.conf""$ HOME""$PROJECT_ROOT/complex.conf", ve
".". Bunlardan herhangi biri dizin ise, dosya .karmaşıklık içinde aranır
bu dizinler.
ÇEVRE
Yerimizi SEÇENEK PRESETS yapılandırma ortamı değişkenleri için.
onworks.net hizmetlerini kullanarak karmaşıklığı çevrimiçi kullanın