Jest to złożona komenda, którą można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
kompleksowość - Zmierz złożoność źródła C
STRESZCZENIE
kompleksowość [-flagi] [-flaga [wartość]] [--nazwa-opcji[[=| ]wartość]] [ ...]
Operandy, na których operuje ten program, mogą być określone w wierszu poleceń lub
czytać ze standardowego wejścia, po jednym w wierszu. W tym wejściu początkowe i końcowe białe znaki
jest usuwany, puste wiersze są ignorowane. Wejście standardowe nie może być terminalem.
Oblicz złożoność kodu źródłowego nie tylko na podstawie liczby ścieżek przechodzących przez kod, ale
wzmacnia również liczbę linii poprzez zagnieżdżanie na poziomie logicznym.
Oblicz złożoność kodu, licząc linie źródła niebędącego komentarzem i mnożąc przez
zagnieżdżony współczynnik wagi logicznej. Domyślnie 1.9.
OPIS
Waga każdej instrukcji to liczba wierszy, z których korzysta ta instrukcja. Ta wartość jest
pomnożona przez wagę logiki zagnieżdżonej (domyślnie 1.9) dla każdej warstwy logiki. Dla
przykładowy fragment:
jeśli (foo) {
jeśli (pasek) {
bełkot; baza;
}
}
uzyska 11 punktów. Wynik ten jest następnie skalowany w sposób przybliżony pmccabe wyniki dzieląc przez 20
i zaokrąglenie. To kończy się wynikiem „1”. pmccabe osiąga wyższe wyniki w prostych procedurach i
kompleksowość osiąga wyższe wyniki dzięki głębiej zagnieżdżonej logice.
Punktację można dostosować, dostosowując --kara za zagnieżdżenie oraz --skalaczynniki.
Wartości domyślne skalibrowano poprzez porównanie średnich wyników milionów linii
kodu z wynikami pmccabe.
Na potrzeby tego programu procedura jest identyfikowana poprzez nazwę, po której następuje a
wyrażenie w nawiasie, a następnie otwierający nawias klamrowy. Kończy się zamknięciem loków
nawias w kolumnie 1.
Ten program wykona swoją funkcję dla każdego pliku wymienionego w wierszu poleceń lub dla każdego
plik nazwany na liście odczytanej ze standardowego wejścia. Argumenty lub nazwy danych wejściowych muszą istnieć wcześniej
akta. Lista wejść może zawierać komentarze, które są pustymi liniami lub liniami zaczynającymi się od
postać.
OPCJE
-t minimum, --próg=minimum
Próg raportowania. Ta opcja przyjmuje jako argument liczbę całkowitą. The
domyślnym minimum dla tej opcji jest:
30
Ignoruj wszelkie procedury o stopniu złożoności poniżej tego progu. Domyślnie,
wynik złożoności poniżej 30 nie jest drukowany. Jeśli jednak histogram i
mają zostać wydrukowane statystyki, ale nie wyniki poszczególnych procedur, wtedy jest to wartość domyślna
jest ustawiony na zero. Procedury poniżej tego limitu nie są uwzględniane w statystykach.
--straszny próg=minimum
zerowy próg wyjścia. Ta opcja przyjmuje jako argument liczbę całkowitą. The
domyślnym minimum dla tej opcji jest:
100
Jeśli którakolwiek procedura uzyska wynik wyższy niż ten próg, program zakończy działanie bez
zero. (4/COMPLEX_EXIT_HORRID_FUNCTION, jeśli nie wystąpią żadne inne problemy.) Do
domyślnie program kończy działanie zerowe, chyba że jedna funkcja przekroczy okropny wynik
100.
-n czynnik, --kara za zagnieżdżenie=czynnik
mnożnik wyniku dla kodu zagnieżdżonego.
Konstrukty językowe mają tym większą wagę, im głębiej są zagnieżdżone. Przez
domyślnie każda warstwa jest karana współczynnikiem 1.9. Argumentem opcji jest a
liczba zmiennoprzecinkowa. Kara może wynosić 1, ale nie mniej.
--kara-demi-zagnieżdżenia=czynnik
mnożnik wyniku dla wyrażeń zagnieżdżonych.
Domyślnie ta wartość znajduje się w połowie drogi między 1.0 a karą za zagnieżdżenie
(w szczególności pierwiastek kwadratowy kary za zagnieżdżenie). Odnosi się do A
Podwyrażenie w nawiasach. np
((a > b) && (c > d))
zawiera dwa podwyrażenia w nawiasach. Oznaczałoby to 3.5 punktu. Na
z drugiej strony to:
(a > b i& c > d)
zawiera dwa operatory relacji i operator logiczny na tym samym poziomie. Te
zagnieżdżone liczby zostaną pomnożone przez siebie i uzyskają wynik 2.5 * 2.5lub 6.25. Nie rób
To. Sytuacja staje się jeszcze gorsza, jeśli logiczne „i” i „lub” są na tym samym poziomie.
-s czynnik, --skala=czynnik
współczynnik skalowania złożoności. Ta opcja przyjmuje jako argument liczbę całkowitą.
Domyślnie skalowanie wynosi 20, co dzieli wynik surowy przez 20. Tak było
znormalizowany, aby w przybliżeniu odpowiadał pmccabe wyniki:
0-9 Łatwy w utrzymaniu kod.
10-19 Utrzymany bez większych problemów.
20-29 Utrzymany przy odrobinie wysiłku.
30-39 Trudny w utrzymaniu kodu.
40-49 Trudny w utrzymaniu kod.
50-99 Kod nie do utrzymania.
100-199 Szalone tworzenie trudnego kodu.
200 + Chciałbym tylko żartować.
Wynik | ln-ct | nc-lns| nazwa-pliku(wiersz): nazwa-proc
4707 3815 2838 lib/vasnprintf.c(1747): VASNPRINTF
-h, --histogram, --brak-histogramu
Wyświetl histogram liczb złożoności. The brak histogramu formularz wyłączy
opcja. Ta opcja może nie być wstępnie skonfigurowana ze zmiennymi środowiskowymi lub w
pliki inicjalizacyjne (rc).
Zamiast drukować wynik każdej funkcji, na końcu drukowane jest podsumowanie
pokazujące, ile funkcji miało określone zakresy wyników. Chyba że --wyniki is
specjalnie oznaczony, partytury nie zostaną wydrukowane po wybraniu tej opcji. The
minimalny próg punktacji również zostanie obniżony do zera (0), chyba że --próg is
określony.
-c, --wyniki, --brak-wyników
Wyświetl wynik dla każdej procedury. The brak wyników formularz wyłączy opcję.
Ta opcja może nie być ustawiona ze zmiennymi środowiskowymi lub podczas inicjalizacji (rc)
akta.
Jeśli określisz --histogram, indywidualne wyniki nie będą wyświetlane, chyba że tak
opcja jest określona.
-I ciąg, --ignorować=ciąg
nazwa procedury, którą należy zignorować. Opcja ta może pojawić się nieograniczoną ilość razy.
W niektórych kodach zdefiniowano makra, które zakłócają analizę leksykalną. To spowoduje
je ignorować. Inne sposoby ignorowania funkcji to:
Użyj składni K&R dla nagłówka procedury.
Użyj makra przetwarzania wstępnego, aby złożyć nagłówek procedury.
Uprość swój kod.
Ogólnie rzecz biorąc, wszystko, co zrobisz, co zmieni normalną składnię C, spowoduje zamieszanie
analiza leksykalna. Jeśli procedura nie zostanie zauważona, nie zostanie zaliczona. Jeśli
kod w ramach procedury jest niezrozumiały, prawdopodobnie zostaniesz uznany za nieodpowiedni
wyników.
-H, --brak nagłówka
nie drukuj nagłówka punktacji. Ta opcja może nie być wstępnie skonfigurowana w środowisku
zmiennych lub w plikach inicjalizacyjnych (rc).
Jeśli skrypt ma przetwarzać dane wyjściowe punktacji, analizowanie jest łatwiejsze bez
nagłówek. Wynik histogramu zawsze będzie miał nagłówek.
-u opcja unifdef, --unifdef=opcja unifdef
Przepuść źródło(a). unifdef(1BSD). Ta opcja może wydawać się nieograniczona
kilka razy.
Usuń fragmenty kodu otoczone przez #if/#endif dyrektywy. Opcja
argument jest przekazywany jako argument do metody unifdef(1BSD) program. Na przykład:
kompleksowość -u-Dsymbol
Mogłoby spowodować symbol zostać zdefiniowany i usunąć sekcje kodu poprzedzone przez #ifndef
symbol dyrektyw.
Proszę zobaczyć unifdef dokumentacja, aby uzyskać więcej informacji.
--unif-exe=żarcie
Określ program unifdef.
Alternatywny program do ujednolicenia wejścia.
-i Nazwa pliku, --Wejście=Nazwa pliku
plik listy plików.
Zamiast listy plików wejściowych z wiersza poleceń lub odczytywania ich ze standardu
input, przeczytaj listę plików z tego pliku.
--namierzać=Nazwa pliku
plik wyjściowy śledzenia.
Wydrukuj wyniki pośrednie do pliku śledzenia.
-?, --help
Wyświetl informacje o użytkowaniu i wyjdź.
-!, --więcej pomocy
Przekaż rozszerzone informacje o użytkowaniu przez pager.
-> [plik cfg], --zapisz-opcje [=plik cfg]
Zapisz stan opcji do plik cfg. Wartość domyślna to trwać Plik konfiguracyjny
wymienione w OPCJA PRESETY poniżej. Polecenie zakończy się po aktualizacji
plik konfiguracyjny.
-< plik cfg, --opcje wczytywania=plik cfg, --bez opcji ładowania
Załaduj opcje z plik cfg, brak opcji ładowania formularz wyłączy ładowanie
wcześniejsze pliki config/rc/ini. --bez opcji ładowania jest obsługiwany wcześnie, niesprawny.
-v [{v|c|n --wersja [{v|c|n}]}]
Wypisz wersję programu i wyjdź. Domyślnym trybem jest `v', prosta wersja.
Tryb `c' wypisze informacje o prawach autorskich, a `n' wypisze pełne informacje o prawach autorskich
ogłoszenie.
OPCJA PRESETY
Każda opcja, która nie jest oznaczona jako nie wstępnie ustawione można ustawić przez wczytanie wartości z
plik konfiguracyjny („RC” lub „.INI”) i wartości ze zmiennych środowiskowych o nazwach:
ZŁOŻONOŚĆ_ or ZŁOŻONOŚĆ
Ustawienia środowiskowe mają pierwszeństwo (są przetwarzane później niż) konfiguracja
akta. homerc pliki są "$@/complex.conf""$ HOME""$PROJECT_ROOT/complex.conf", oraz
".„. Jeśli którykolwiek z nich jest katalogiem, to plik złożonośćrc szuka się wewnątrz
te katalogi.
ŚRODOWISKO
See OPCJA PRESETY dla konfiguracyjnych zmiennych środowiskowych.
Wykorzystaj złożoność online, korzystając z usług onworks.net