영어프랑스어스페인어

Ad


온웍스 파비콘

복잡성 - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 복잡성 실행

이는 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 명령 복잡성입니다.

프로그램:

이름


복잡성 - C 소스의 복잡성 측정

개요


복잡성 [-깃발] [-깃발 [가치]] [--옵션 이름[[=| ]가치]] [ ... ]

이 프로그램이 작동하는 피연산자는 명령줄이나
한 줄에 하나씩 표준 입력에서 읽습니다. 해당 입력에서 선행 및 후행 공백
제거되고 빈 줄은 무시됩니다. 표준 입력은 터미널이 아닐 수 있습니다.

코드 통과 경로 수뿐만 아니라 소스 코드의 복잡성을 계산합니다.
또한 로직 레벨 중첩을 통해 라인 수를 증폭합니다.

주석이 아닌 소스의 줄 수를 세고 다음을 곱하여 코드의 복잡성을 계산합니다.
중첩된 논리 가중치 인자. 기본적으로 1.9입니다.

기술


각 명령문의 가중치는 명령문이 사용하는 행 수입니다. 이 값은
각 로직 레이어에 대해 중첩된 로직 가중치(기본적으로 1.9)를 곱합니다. 을 위한
예를 들어, 이 스니펫은 다음과 같습니다.

경우 (푸) {
if (바) {
뒤죽박죽; 바즈;
}
}

점수는 11이 됩니다. 이 점수는 대략적으로 조정됩니다. pmccabe 20으로 나눈 결과
그리고 반올림. 마지막에 "1"의 점수를 얻습니다. pmccabe 간단한 절차에서 더 높은 점수를 얻습니다.
복잡성 더 깊게 중첩된 논리를 사용하면 더 높은 점수를 얻습니다.

점수를 조정하여 조정할 수 있습니다. --중첩 페널티--규모-ing 요인.
수백만 라인의 평균 결과를 비교하여 기본값을 보정했습니다.
결과가 포함된 코드 pmccabe.

이 프로그램의 목적을 위해 절차는 이름과 그 뒤에 오는 기호로 식별됩니다.
괄호로 묶인 표현식과 여는 중괄호. 닫히는 곱슬머리로 끝나요
열 1에 중괄호를 입력합니다.

이 프로그램은 명령줄에 명명된 모든 파일 또는 모든 파일에 대해 기능을 수행합니다.
stdin에서 읽은 목록에 이름이 지정된 파일. 인수 또는 입력 이름은 기존에 있어야 합니다.
파일. 입력 목록에는 주석이 포함될 수 있습니다. 주석은 다음으로 시작하는 빈 줄 또는 줄입니다.
'#' 문자.

옵션


-t 최저한의, --한계점=최저한의
보고 기준. 이 옵션은 정수를 인수로 사용합니다. 그만큼
디폴트 값 최저한의 이 옵션의 경우:
30

이 임계값보다 낮은 복잡성 측정값을 갖는 절차는 무시합니다. 기본적으로,
30 미만의 복잡성 점수는 인쇄되지 않습니다. 그러나 히스토그램과
통계는 인쇄되지만 개별 절차 점수는 인쇄되지 않습니다.
XNUMX으로 설정됩니다. 이 한도 미만의 절차는 통계에 포함되지 않습니다.

--끔찍한 임계값=최저한의
종료 임계값이 XNUMX입니다. 이 옵션은 정수를 인수로 사용합니다. 그만큼
디폴트 값 최저한의 이 옵션의 경우:
100

어떤 프로시저의 점수가 이 임계값보다 높으면 프로그램은 종료되지 않습니다.
영. (4/COMPLEX_EXIT_HORRID_FUNCTION, 다른 문제가 발생하지 않는 경우.)
기본적으로 이 프로그램은 하나의 함수가 다음의 끔찍한 점수를 초과하지 않는 한 XNUMX으로 종료됩니다.
100.

-n 인자, --중첩 페널티=인자
중첩된 코드에 대한 점수 승수.

언어 구조는 더 깊게 중첩될수록 더 큰 비중을 차지합니다. 에 의해
기본적으로 각 레이어는 1.9배로 페널티를 받습니다. 옵션 인수는
부동 소수점 수. 페널티는 1일 수 있지만 그 이하일 수는 없습니다.

--반 중첩 페널티=인자
중첩된 표현식에 대한 점수 승수입니다.

기본적으로 이 값은 1.0과 중첩 페널티 사이의 중간입니다.
(특히 중첩 페널티의 제곱근) 그것은 다음을 가리킨다.
괄호로 묶인 하위 표현식. 예를 들어
((a > b) && (c > d))
괄호 안에 두 개의 하위 표현식이 포함되어 있습니다. 이렇게 하면 3.5포인트가 계산됩니다. 에
반면에 이것은:
(a > b && c > d)
두 개의 관계 연산자와 동일한 수준의 논리 연산자가 포함되어 있습니다. 이것들
중첩된 개수는 함께 곱해지고 산출됩니다. 2.5 * 2.56.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 이름
4707 3815 2838 lib/vasnprintf.c(1747): 바스프린트프

-h, --히스토그램, --히스토그램 없음
복잡도 수치의 히스토그램을 표시합니다. 그만큼 히스토그램 없음 양식이 비활성화됩니다
옵션. 이 옵션은 환경 변수 또는
초기화(rc) 파일.

각 함수의 점수를 인쇄하는 대신 마지막에 요약이 인쇄됩니다.
특정 점수 범위를 갖는 함수 수를 보여줍니다. 하지 않는 한 --점수 is
특별히 호출된 경우 이 옵션이 지정된 상태에서는 점수가 인쇄되지 않습니다. 그만큼
최소 점수 임계값도 0으로 감소됩니다. --한계점 is
지정되었습니다.

-c, --점수, --점수 없음
각 절차에 대한 점수를 표시합니다. 그만큼 무득점 양식은 옵션을 비활성화합니다.
이 옵션은 환경 변수나 초기화(rc)에서 미리 설정되지 않을 수 있습니다.
파일.

지정한 경우 --히스토그램, 개별 점수는 표시되지 않습니다.
옵션이 지정되었습니다.

-I , --무시하다=
무시할 프로시저 이름입니다. 이 옵션은 횟수 제한 없이 나타날 수 있습니다.

일부 코드에는 어휘 분석을 혼동시키는 매크로가 정의되어 있습니다. 이로 인해
무시할 수 있습니다. 함수가 무시되도록 하는 다른 방법은 다음과 같습니다.

프로시저 헤더에 K&R 구문을 사용합니다.

전처리 매크로를 사용하여 프로시저 헤더를 조합합니다.

코드를 단순화하세요.
일반적으로 말하자면, 일반적인 C 구문을 변경하는 모든 작업은 C 구문을 혼란스럽게 합니다.
어휘 분석. 절차가 표시되지 않으면 계산되지 않습니다. 만약에
프로시저 내의 코드를 이해할 수 없으면 부적절할 가능성이 높습니다.
결과.

-H, --헤더 없음
점수 헤더를 인쇄하지 않습니다. 이 옵션은 환경에 따라 사전 설정되지 않을 수 있습니다.
변수 또는 초기화(rc) 파일에 있습니다.

스크립트가 점수 출력을 처리하려는 경우 구문 분석은
머리글. 히스토그램 출력에는 항상 헤더가 있습니다.

-u unifdef-opt, --unifdef=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"
".". 이들 중 하나라도 디렉토리인 경우 파일은 .complexityrc 내에서 검색됩니다.
그 디렉토리.

환경


만나다 OPTION 프리셋 구성 환경 변수용.

onworks.net 서비스를 사용하여 온라인으로 복잡성을 활용하세요


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad