C6259
경고 C6259: 레이블이 있는 코드에 접근할 수 없습니다. switch-expr의 (<expression> & <constant>)은(는) <case-label>(으)로 평가되지 않습니다.
이 경고는 switch 식에서 비트 AND(&) 비교의 결과로 인해 코드에 접근할 수 없음을 나타냅니다. switch 식의 상수와 일치하는 case 문에만 접근할 수 있고 다른 모든 case 식에는 접근할 수 없습니다.
예제
다음 샘플 코드에서는 switch (rand() & 3) 식이 case 레이블(case 4)로 평가될 수 없기 때문에 이 경고가 생성됩니다.
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
case 4:
/* Not reachable */
break;
default:
break;
}
}
이 경고를 해결하려면 접근할 수 없는 코드를 제거하거나 case 문에 사용된 상수가 올바른지 확인하십시오. 다음은 접근할 수 없는 case 문을 제거한 코드입니다.
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
default:
break;
}
}