다음 코드를 감안할 때 :sense-less 및 buggy switch 문에 대한 경고를 트리거하는 컴파일러 나 옵션이 있습니까?
bool doGoodThing;
switch (some_variable)
{
case 1:
case 2:
doGoodThing = true;
default:
doGoodThing = false;
}
최신 gcc
버전은 변수가 등등에 할당하지만 여전히 사용하지 될 때 감지 할만큼 똑똑하다. 전체 스위치가 이와 같은 코드에 대해 이해하지 못한다는 경고를 트리거 할 수있는 컴파일러 나 플래그가 있습니까?
업데이트 : 질문에 대한 변수가 doGoodThing
입니다. 그것은 어리석은 switch
진술에 대해서는별로 의미가 없습니다.
UPDATE 2 : 중복으로 표시하기 전에 "dupe"유권자를 통과 시키십시오. 한 번 더 질문을 읽으십시오. 이것은 "case"다음에 "break"문이 누락되었다는 경고가 아닙니다. 이것은 데드 코드, 논리적 오류, 컴파일러에 의한 코드의 정적 인 의미 분석에 관한 것입니다. "중단"이 없다면 나는 경고 할 필요가 없습니다.
이 스 니펫은 나에게 완벽하게 이해합니다. – BlackBear
http://stackoverflow.com/questions/7703358/how-can-i-tell-gcc-to-warn-or-fail-on-switch-case-statements-without-a-break – cnicutar
어떤 의미에서 이해가 안되니? 컴파일러에서 코드의 의미 적 의미를 확인하도록 하시겠습니까? – Nawaz