it-source

컴파일 오류: 스위치, "이전에 예상된 식"

criticalcode 2023. 8. 4. 23:09
반응형

컴파일 오류: 스위치, "이전에 예상된 식"

본론으로 들어가자면, 저는 제 문제를 상당히 자기 설명적이기 때문에 다시 만들었습니다.

오류 없이 다음을 준수됩니다.

switch (n) {
    case 1:
        NSLog(@"");
        NSString *aStr;
        break;
    default:
        break;
    }

오류가 발생하여 컴파일되고 NSLog()만 누락됩니다.

switch (n) {
    case 1:
        NSString *aStr;
        break;
    default:
        break;
    }

컴파일 시 "'NSString' 앞에 예상되는 식"이라는 오류가 발생합니다.

내가 뭘 빠트렸나요?

일반적인 C에서는 두 경우 모두 괄호로 묶어야 합니다.이것이 당신의 문제를 해결할 수 있을 것 같습니다.

case 1:
{
    NSLog(@"");
    NSString *aStr;
    break;
}

자세한 내용은 이 SO 질문을 참조하십시오.

이 문제를 해결하는 또 다른 방법은 위의 작업 예제에서 수행한 것처럼 사례 레이블과 첫 번째 선언 사이에 설명문을 넣는 것입니다.자세한 내용은 댓글 및 Quinn Taylor의 답변을 참조하십시오.

변수를 다음에서 첫 번째 문으로 선언할 수 없습니다.case괄호 없이, 그리고 C 기반 언어의 많은 다른 맥락에서.자세한 내용은 스위치내부의 변수 선언을 참조하십시오.

case 0: {
    Loading my nib file;
    break; 
}
case 1: {
    Loading another nib file;
    break; 
}
Note that if you don't have an assignment (x = y) right after the case it won't be a problem. For example:

언급URL : https://stackoverflow.com/questions/2036819/compile-error-with-switch-expected-expression-before

반응형