이는 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공자에서 실행할 수 있는 명령 복잡성입니다.
프로그램:
이름
복잡성 - C 소스의 복잡도 측정
개요
복잡성 [-깃발] [-깃발 [가치]] [--옵션 이름[[=| ]가치]] [ ... ]
이 프로그램이 작동하는 피연산자는 명령줄이나
한 줄에 하나씩 표준 입력에서 읽습니다. 해당 입력에서 선행 및 후행 공백
제거되고 빈 줄은 무시됩니다. 표준 입력은 터미널이 아닐 수 있습니다.
단순히 경로별 코드 계산이 아닌 소스 코드의 복잡성을 계산합니다.
또한 논리 수준 중첩을 통해 줄 수를 확대합니다.
주석이 아닌 소스의 줄을 세고 곱하여 코드의 복잡성을 계산합니다.
중첩된 논리 가중치 계수입니다. 기본값은 1.9입니다.
기술
각 명령문의 가중치는 명령문이 사용하는 줄 수입니다. 이 값은
각 논리 계층에 대해 중첩된 논리 가중치(기본값 1.9)를 곱합니다.
예를 들어, 이 스니펫:
if (foo) {
if (막대) {
범블;바즈;
}
}
11점을 획득합니다. 이 점수는 대략적으로 조정됩니다. pmccabe 20으로 나누어서 결과
반올림합니다. 마지막에 "1"이 나옵니다. pmccabe 간단한 절차에서 더 높은 점수를 받습니다.
복잡성 더 깊이 중첩된 논리로 더 높은 점수를 얻습니다.
점수는 조정을 통해 조정할 수 있습니다. --중첩-페널티 그리고 --규모-ing 요인.
기본값은 수백만 줄의 평균 결과를 비교하여 보정되었습니다.
코드의 결과 pmccabe.
이 프로그램의 목적을 위해 프로시저는 이름 뒤에 다음이 붙은 것으로 식별됩니다.
괄호로 묶인 표현식과 여는 중괄호로 시작합니다. 닫는 중괄호로 끝납니다.
1열에 중괄호를 넣습니다.
이 프로그램은 명령줄에 명명된 모든 파일 또는 모든 파일에 대해 기능을 수행합니다.
stdin에서 읽은 목록에 이름이 지정된 파일. 인수 또는 입력 이름은 기존에 있어야 합니다.
파일. 입력 목록에는 주석이 포함될 수 있습니다. 주석은 다음으로 시작하는 빈 줄 또는 줄입니다.
'#' 문자.
옵션
-t 최저한의, --한계점=최저한의
보고 임계값. 이 옵션은 정수를 인수로 사용합니다.
디폴트 값 최저한의 이 옵션의 경우:
30
이 임계값보다 낮은 복잡도 측정값을 갖는 모든 절차를 무시합니다. 기본적으로
30 미만의 복잡도 점수는 인쇄되지 않습니다. 그러나 히스토그램과
통계는 인쇄되지만 개별 절차 점수는 인쇄되지 않는 경우 기본값
0으로 설정됩니다. 이 한도 미만의 프로시저는 통계에 포함되지 않습니다.
--끔찍한 임계값=최저한의
종료 임계값이 0입니다. 이 옵션은 정수를 인수로 사용합니다.
디폴트 값 최저한의 이 옵션의 경우:
100
어떤 절차가 이 임계값보다 높은 점수를 받으면 프로그램은 종료됩니다.
영. (4/복잡한 종료_끔찍한_함수, 다른 문제가 발생하지 않으면.)
기본적으로 이 프로그램은 하나의 함수가 끔찍한 점수를 초과하지 않는 한 0으로 종료됩니다.
100.
-n 인자, --중첩-페널티=인자
중첩된 코드에 대한 점수 배수.
언어 구성 요소는 더 깊이 중첩될수록 더 큰 가중치를 갖습니다.
기본적으로 각 레이어는 1.9배의 페널티를 받습니다. 옵션 인수는 다음과 같습니다.
부동 소수점 숫자. 페널티는 1일 수 있지만 그보다 작을 수는 없습니다.
--데미-네스팅-페널티=인자
중첩된 표현식에 대한 점수 배수.
기본적으로 이 값은 1.0과 중첩 페널티 사이의 중간입니다.
(특히 중첩 페널티의 제곱근). 이는 다음을 나타냅니다.
괄호로 묶인 하위 표현식. 예:
((a > b) && (c > d))
괄호로 묶인 하위 표현식이 두 개 포함되어 있습니다. 이는 3.5점으로 계산됩니다.
다른 한편, 이것:
(a > b && c > d)
동일한 수준에 두 개의 관계 연산자와 하나의 논리 연산자가 포함되어 있습니다.
중첩된 카운트는 함께 곱해져 생성됩니다. 2.5 * 2.5및 6.25하지 마세요
그게요. 같은 레벨에 논리적으로 and와 or가 있다면 상황은 더 나빠집니다.
-s 인자, --규모=인자
복잡도 스케일링 계수입니다. 이 옵션은 정수를 인수로 사용합니다.
기본적으로 스케일링은 원시 점수를 20으로 나누는 20입니다.
대략적으로 대응하도록 정규화됨 pmccabe 점수:
0-9 유지 관리가 쉬운 코드.
10-19 별다른 문제 없이 유지 관리되었습니다.
20-29 약간의 노력으로 유지 관리됨.
30-39 코드를 유지 관리하기 어렵습니다.
40-49 코드를 유지하기 어렵습니다.
50-99 유지보수가 불가능한 코드.
100-199 미친놈이 어려운 코드를 만드는구나.
200+ 농담이었으면 좋겠어.
점수 | ln-ct | nc-lns| 파일 이름(줄): proc-name
4707 3815 2838 라이브러리/vasnprintf.c(1747): VASNPRINTF
-h, --히스토그램, --히스토그램 없음
복잡도 숫자의 히스토그램을 표시합니다. 히스토그램 없음 양식이 비활성화됩니다
옵션입니다. 이 옵션은 환경 변수나
초기화(rc) 파일.
각 기능의 점수를 출력하는 대신, 요약을 끝에 출력합니다.
특정 점수 범위를 가진 함수의 수를 보여줍니다. --점수 is
특별히 호출된 경우 이 옵션을 지정하면 점수가 인쇄되지 않습니다.
최소 득점 임계값도 0으로 낮아집니다. --한계점 is
지정되었습니다.
-c, --점수, --점수 없음
각 절차의 점수를 표시합니다. 무득점 양식은 옵션을 비활성화합니다.
이 옵션은 환경 변수나 초기화(rc)에서 미리 설정되지 않을 수 있습니다.
파일.
지정한 경우 --히스토그램, 개별 점수는 이것이 아닌 한 표시되지 않습니다.
옵션이 지정되었습니다.
-I 현, --무시하다=현
무시할 프로시저 이름입니다. 이 옵션은 무제한으로 나타날 수 있습니다.
일부 코드에는 어휘 분석을 혼란스럽게 하는 매크로가 정의되어 있습니다. 이로 인해
무시되도록 설정합니다. 함수를 무시하는 다른 방법은 다음과 같습니다.
프로시저 헤더에 K&R 구문을 사용합니다.
전처리 매크로를 사용하여 프로시저 헤더를 조립합니다.
코드를 단순화하세요.
일반적으로 말해서, 정상적인 C 구문을 변경하는 모든 작업은 다음을 혼동시킵니다.
어휘 분석. 절차가 보이지 않으면 계산되지 않습니다.
프로시저 내의 코드가 이해할 수 없는 경우 부적절한 결과를 얻을 가능성이 높습니다.
결과.
-H, --헤더 없음
점수 헤더를 인쇄하지 않습니다. 이 옵션은 환경 변수에 따라 미리 설정되지 않을 수 있습니다.
변수 또는 초기화(rc) 파일에서.
스크립트가 점수 출력을 처리할 경우 구문 분석이 더 쉽습니다.
헤더. 히스토그램 출력에는 항상 헤더가 포함됩니다.
-u unifdef-opt, --유니프데프=unifdef-opt
소스를 실행하세요 유니프데프(1BSD). 이 옵션은 무제한으로 나타날 수 있습니다.
횟수.
다음으로 둘러싸인 코드 섹션을 제거합니다. #if/#endif 지시어. 옵션
인수는 인수로 전달됩니다. 유니프데프(1BSD) 프로그램. 예를 들어:
복잡성 -u-D심볼
원인이된다. 상징 정의하고 앞에 있는 코드 섹션을 제거합니다. #ifndef
상징 가이드 라인.
를 참조하십시오 유니프데프 자세한 내용은 설명서를 참조하십시오.
--unif-exe=음식물
unifdef 프로그램을 지정합니다.
입력을 unifdef-ing하는 데 사용할 대체 프로그램입니다.
-i 파일 이름, --입력=파일 이름
파일 목록의 파일.
입력 파일의 명령줄 목록이나 표준에서 읽는 대신
입력, 이 파일에서 파일 목록을 읽습니다.
--추적하다=파일 이름
추적 출력 파일.
중간 점수를 추적 파일에 인쇄합니다.
-?, --도움
사용 정보를 표시하고 종료합니다.
-!, --추가 도움말
호출기를 통해 확장된 사용 정보를 전달합니다.
-> [cfg 파일], --저장 옵션 [=cfg 파일]
옵션 상태 저장 cfg 파일. 기본값은 지난 구성 파일
에 나열 OPTION 프리셋 섹션, 아래. 업데이트 후 명령이 종료됩니다.
구성 파일.
-< cfg 파일, --로드 옵션=cfg 파일, --무부하 옵션
로드 옵션 cfg 파일. 그만큼 무부하 옵션 양식은 로드를 비활성화합니다.
이전 config/rc/ini 파일. --무부하 옵션 조기에 처리되지 않습니다.
-v [{v|c|n --번역 [{v|c|n}]}]
프로그램 버전을 출력하고 종료합니다. 기본 모드는 단순 버전인 `v'입니다.
`c' 모드는 저작권 정보를 인쇄하고 `n'은 전체 저작권을 인쇄합니다.
주의.
OPTION 프리셋
로 표시되지 않은 모든 옵션 지원 사전 설정 가능 에서 값을 로드하여 사전 설정할 수 있습니다.
구성("RC" 또는 ".INI") 파일 및 다음과 같은 환경 변수의 값:
복잡성_ or 복잡성
환경 사전 설정이 구성보다 우선 적용됩니다(나중에 처리됨).
파일. 그만큼 홈크 파일은 "$@/complex.conf""$ HOME""$PROJECT_ROOT/complex.conf"
".". 이들 중 하나라도 디렉토리인 경우 파일 .복잡성rc 내에서 검색됩니다
해당 디렉토리.
환경
OPTION 프리셋 구성 환경 변수용.
onworks.net 서비스를 사용하여 복잡성을 온라인으로 활용하세요