2010-08-09 3 views
2

무료 도구 (정적 검사의 일종)이 있는가 (또는 무료 유닉스의 종류)? 나는 상업적인 것을 알고있다 : PC-lint/FlexeLint. 그것은 내가 원하는 바를 정확하게 수행하지만, 무료가 아니며 Windows 전용입니다. 다음은이 매뉴얼의에서 예입니다강력한 형식 정의 정적 타입 검사하는 <strong>일반</strong> C (안 C++)에 대한 형식 정의 기반 및 리눅스에서 실행 않습니다 검사기 (UNIX)

typedef int Count; 
typedef int Bool; 
Count n; 
Bool stop; 
. 
. 
. 
n = stop ; // tool generates a warning here 

내가했습니다 이미 Enforce strong type checking in C (type strictness for typedefs)Is there a good way to force type incompatibility in C?을 읽고 내가 구조체 캡슐화 해킹 알고 있어요,하지만 그건 내가 원하는 하지입니다. 코드가 쌓여 있으며이 특정 유형의 실수를 확인하고 싶습니다.

답변

1

splint? (나는 그것이 당신이 원하는 것을 할 수 있는지를 확인하지 못했습니다. 그렇습니다.)

또는 C99의 stdbool.hbool 유형을 사용하는 것은 어떻습니까?

+0

답장을 보내 주셔서 감사합니다. :) 나는 이미 부목을 보았습니다. 이것은 실제로 제가 확인한 첫 번째 도구입니다. 필자는 예제에서 엄격 모드로 실행했고 모든 것이 깨끗하다고 ​​생각했습니다. 또한 매뉴얼을 살펴보고 'Types'섹션의 모든 플래그를 확인했지만 나에게 유용한 것을 찾을 수 없었습니다. bool은 $$$ windoze PC-lint 매뉴얼의 예제 일뿐입니다. 실제 코드는 int와 longs를 처리합니다. bool은 없습니다. –

0

"lint"는 원래 유닉스 도구였습니다. 더 이상 표준 배포판에 포함되어 있지 않습니까?

그렇지 않은 경우 gcc -wall은 대부분 동일한 경고를 제공합니다.

+1

아니요, 해당 공구는 "부목"입니다. 부목은 C99을 할 수없고, 그에 대한 wilx의 대답과 의견을 볼 수 있습니다. – detly