다음을 통해 공유


경고 C6259

레이블이 지정된 코드에 연결할 수 없습니다. switch-expr의 ('expression' 및 'constant')는 'case-label'으로 평가할 수 없습니다.

설명

이 경고는 스위치 식의 비트 AND(&) 비교 결과로 인해 연결할 수 없는 코드를 나타냅니다. switch 식의 상수와 일치하는 case 문만 연결할 수 있습니다. 다른 모든 사례 문에 연결할 수 없습니다.

코드 분석 이름: DEADCODEINBITORLIMITEDSWITCH

예시

다음 샘플 코드에서는 'switch' 식 (rand() & 3) 이 대/소문자 레이블(case 4)로 계산할 수 없으므로 이 경고를 생성합니다.

#include <stdlib.h>

void f()
{
     switch (rand () & 3) {
        case 3:
            /* Reachable */
            break;
        case 4:
            /* Not reachable */
            break;
        default:
            break;
    }
}

이 경고를 수정하려면 연결할 수 없는 코드를 제거하거나 사례 문에 사용된 상수가 올바른지 확인합니다. 다음 코드는 연결할 수 없는 사례 문을 제거합니다.

#include <stdlib.h>

void f()
{
     switch (rand () & 3) {
        case 3:
            /* Reachable */
            break;
        default:
            break;
    }
}

참고 항목