Aceasta este complexitatea comenzii care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
complexitate - Măsurați complexitatea sursei C
REZUMAT
complexitate [-steaguri] [-steag [valoare,--opțiune-nume[[=| ]valoare]] [ ... ]
Operanzii pe care operează acest program pot fi specificați fie pe linia de comandă, fie
citiți de la intrarea standard, una pe linie. În acea intrare, spațiul alb de început și de final
este eliminat, liniile goale sunt ignorate. Este posibil ca intrarea standard să nu fie un terminal.
Calculați complexitatea codului sursă nu doar cu un număr de căi prin cod, ci
de asemenea, amplificarea numărului de linii prin imbricare la nivel logic.
Calculați complexitatea codului numărând liniile sursei fără comentarii și înmulțind cu
un factor de greutate logic imbricat. În mod implicit, 1.9.
DESCRIERE
Greutatea fiecărei declarații este numărul de rânduri pe care le utilizează declarația. Această valoare este
înmulțit cu ponderea logică imbricată (1.9 în mod implicit) pentru fiecare strat de logică. Pentru
exemplu, acest fragment:
dacă (foo) {
dacă (bară) {
bumble; baz;
}
}
va nota 11. Acest scor este apoi scalat la aproximativ pmccabe rezultate prin împărțirea la 20
și rotunjire. Acesta are un punctaj „1” la final. pmccabe scoruri mai mari la procedurile simple și
complexitate scoruri mai mari cu o logică mai profund imbricată.
Scorul poate fi ajustat prin ajustarea --cuibare-pedeapsa și --scară-ing factori.
Valorile implicite au fost calibrate prin compararea rezultatelor medii a milioane de linii
de cod cu rezultatele de pmccabe.
În scopul acestui program, o procedură este identificată printr-un nume urmat de a
expresie între paranteze și apoi o acoladă deschisă. Se termină cu un creț de închidere
acolade în coloana 1.
Acest program își va îndeplini funcția pentru fiecare fișier numit pe linia de comandă sau pentru fiecare
fișier numit într-o listă citită din stdin. Argumentele sau numele de intrare trebuie să fie preexistente
fișiere. Lista de intrare poate conține comentarii, care sunt linii goale sau linii care încep cu
un caracter.
OPŢIUNI
-t minim, --prag=minim
Pragul de raportare. Această opțiune ia ca argument un număr întreg. The
lipsă minim pentru această opțiune este:
30
Ignorați orice procedură cu o măsură de complexitate sub acest prag. În mod implicit,
un scor de complexitate sub 30 nu este tipărit. Cu toate acestea, dacă o histogramă și
statisticile urmează să fie tipărite, dar nu scorurile procedurilor individuale, apoi cele implicite
este setat la zero. Procedurile sub această limită nu sunt luate în considerare în statistici.
--oribil-prag=minim
pragul de ieșire zero. Această opțiune ia ca argument un număr întreg. The
lipsă minim pentru această opțiune este:
100
Dacă vreo procedură are un scor mai mare decât acest prag, atunci programul va ieși din non-
zero. (4/COMPLEX_EXIT_HORRID_FUNCTION, dacă nu se întâlnesc alte probleme.) By
implicit, acest program iese din zero, cu excepția cazului în care o funcție depășește scorul oribil al
100.
-n factor, --cuibare-pedeapsa=factor
multiplicator de scor pentru codul imbricat.
Construcțiile lingvistice cântăresc mai mult cu cât sunt mai adânc imbricate. De
implicit, fiecare strat penalizează cu un factor de 1.9. Argumentul opțiunii este a
număr în virgulă mobilă. Penalizarea poate fi 1, dar nu mai mică.
--demi-cuibări-penalizare=factor
multiplicator de scor pentru expresiile imbricate.
În mod implicit, această valoare este la jumătatea distanței dintre 1.0 și penalizarea de imbricare
(în special, rădăcina pătrată a penalizării de cuibărit). Se referă la a
subexpresie între paranteze. de exemplu
((a > b) && (c > d))
conține două subexpresii între paranteze. Aceasta ar conta 3.5 puncte. Pe
pe alta parte, asta:
(a > b && c > d)
conține doi operatori de relație și un operator logic la același nivel. Aceste
numărările imbricate vor fi înmulțite împreună și vor avea randament 2.5 * 2.5, 6.25. Nu face
acea. Devine și mai rău dacă aveți și și sau sau logice la același nivel.
-s factor, --scară=factor
factor de scalare a complexității. Această opțiune ia un număr întreg ca argument.
În mod implicit, scalarea este 20, care împarte scorul brut la 20. Aceasta a fost
normalizat pentru a corespunde aproximativ cu pmccabe scoruri:
0-9 Cod ușor de întreținut.
10-19 Întreținut cu puține probleme.
20-29 Menținută cu ceva efort.
30-39 Codul este dificil de întreținut.
40-49 Cod greu de întreținut.
50-99 Cod de neîntreținut.
100-199 Nebun de a face cod dificil.
200+ Mi-aș dori doar să glumesc.
Scor | ln-ct | nc-lns| nume-fișier(linie): nume-proc
4707 3815 2838 lib/vasnprintf.c(1747): VASNPRINTF
-h, --histograma, --fără-histogramă
Afișează histograma numerelor de complexitate. The fără histogramă formularul va dezactiva
opțiune. Este posibil ca această opțiune să nu fie presetată cu variabile de mediu sau în
fișiere de inițializare (rc).
În loc să tipăriți scorul fiecărei funcții, la sfârșit este tipărit un rezumat
arătând câte funcții au avut anumite intervale de scoruri. Dacă nu --scoruri is
numite în mod special, scorurile nu se vor tipări cu această opțiune specificată. The
pragul minim de punctaj va fi, de asemenea, redus la zero (0), cu excepția cazului în care --prag is
specificat.
-c, --scoruri, --fără-scoruri
Afișați scorul pentru fiecare procedură. The fără scoruri formularul va dezactiva opțiunea.
Este posibil ca această opțiune să nu fie presetată cu variabile de mediu sau în inițializare (rc)
fișiere.
Dacă specificați --histograma, scorurile individuale nu vor fi afișate, cu excepția cazului în care acest lucru
este specificată opțiunea.
-I şir, --ignora=şir
numele procedurii să fie ignorat. Această opțiune poate apărea de un număr nelimitat de ori.
Unele coduri au definite macrocomenzi care confundă analiza lexicală. Acest lucru va cauza
ele să fie ignorate. Alte modalități de a face ca funcțiile să fie ignorate sunt:
Utilizați sintaxa K&R pentru antetul unei proceduri.
Utilizați o macrocomandă de preprocesare pentru a asambla antetul procedurii.
Simplificați-vă codul.
În general, orice faci care modifică sintaxa normală C va încurca
analiza lexicala. Dacă o procedură nu este văzută, atunci nu va fi numărată. Dacă
codul dintr-o procedură este de neînțeles, probabil că veți deveni inadecvat
rezultate.
-H, --Fără antet
nu tipăriți antetul de punctaj. Este posibil ca această opțiune să nu fie presetată în funcție de mediu
variabile sau în fișiere de inițializare (rc).
Dacă un script va procesa rezultatul punctajului, analizarea este mai ușoară fără a
antet. Ieșirea histogramei va avea întotdeauna un antet.
-u unifdef-opt, --unifdef=unifdef-opt
Rulați sursa (sursele) prin unifdef(1BSD). Această opțiune poate părea nelimitată
de câte ori.
Scoateți secțiuni de cod înconjurate de #dacă/#endif directive. Optiunea
argumentul este transmis ca argument la unifdef(1BSD) program. De exemplu:
complexitate -u-Dsimbol
ar cauza simbol să fie definite și să elimine secțiuni de cod precedate de #ifndef
simbol directivelor.
Vă rugăm să consultați unifdef documentație pentru mai multe informații.
--unif-exe=prog
Specificați programul unifdef.
Program alternativ de utilizat pentru unifdef-ing intrarea.
-i nume de fișier, --intrare=nume de fișier
fișierul listei de fișiere.
În loc de o listă de linie de comandă a fișierelor de intrare sau de a le citi din standard
de intrare, citiți lista fișierelor din acest fișier.
--urmă=nume de fișier
fișier de ieșire de urmărire.
Imprimați scorurile intermediare într-un fișier de urmărire.
-?, --Ajutor
Afișează informațiile de utilizare și ieși.
-!, --mai mult ajutor
Transmiteți informațiile de utilizare extinse printr-un pager.
-> [cfgfile], --save-opts [=cfgfile]
Salvați starea opțiunii în cfgfile. Valoarea implicită este ultimul Fișier de configurare
enumerate în OPȚIUNE PRESETS secțiunea, mai jos. Comanda va ieși după actualizare
fișierul de configurare.
-< cfgfile, --load-opts=cfgfile, --no-load-opts
Încărcați opțiuni de la cfgfile. opțiuni fără încărcare formularul va dezactiva încărcarea
fișierele config/rc/ini anterioare. --no-load-opts este tratat devreme, nefuncțional.
-v [{v|c|n --versiune [{v|c|n}]}]
Ieșiți versiunea programului și ieșiți. Modul implicit este `v', o versiune simplă.
Modul „c” va tipări informații despre drepturile de autor, iar „n” va tipări toate drepturile de autor
înștiințare.
OPȚIUNE PRESETS
Orice opțiune care nu este marcată ca nu presetabile pot fi presetate prin încărcarea valorilor de la
fișiere de configurare ("RC" sau ".INI") și valori din variabilele de mediu numite:
COMPLEXITATE_ or COMPLEXITATE
Presetările de mediu au prioritate (sunt procesate mai târziu decât) configurației
fișiere. homerc fișierele sunt "$@/complex.conf""$ ACASĂ""$PROJECT_ROOT/complex.conf", și
".". Dacă oricare dintre acestea sunt directoare, atunci fișierul .complexityrc este căutat în interior
acele directoare.
MEDIUL
Vedea OPȚIUNE PRESETS pentru variabilele de mediu de configurare.
Utilizați complexitatea online folosind serviciile onworks.net