프로그래밍언어/C언어[Error]

[C언어][Error] 099. label at end of compound statement – 복합문 끝에 레이블 존재

about_IT 2025. 5. 10. 23:19
728x90

이 오류는 레이블(label)이 블록의 마지막에 위치하여 그 뒤에 실행 가능한 문장이 없을 때 발생합니다. C언어에서는 case, default, 또는 사용자 정의 레이블을 사용할 수 있으며, 이러한 레이블 뒤에는 반드시 실행할 문장이 따라와야 합니다. 레이블이 블록의 끝에 위치하거나 세미콜론 하나만 덩그러니 있을 경우, 의미 없는 레이블로 간주되어 컴파일 오류가 발생할 수 있습니다.

 

이 오류는 goto문이나 switch문에서 자주 발생합니다.

 


● 오류 예제

#include <stdio.h>

int main() {
    goto end;
end:  // 오류: 레이블 뒤에 문장이 없음
    return 0;
}

컴파일 시 다음과 같은 오류 메시지를 출력합니다.

error: label at end of compound statement

 


● 해결 방법

레이블 뒤에는 반드시 실행 가능한 코드가 있어야 합니다. 예를 들어, printf나 변수 대입, return 등이 올 수 있습니다.

#include <stdio.h>

int main() {
    goto end;
end:
    printf("레이블 뒤 문장 존재\n");
    return 0;
}

출력 결과:

레이블 뒤 문장 존재

 


● 실전 팁

  • 레이블은 단독으로 사용할 수 없으며, 반드시 문장을 포함해야 합니다.
  • switch 문에서도 case나 default 뒤에는 반드시 실행할 코드가 있어야 합니다.
  • 디버깅 시 레이블 위치가 적절한지 항상 점검하세요.

 

레이블은 프로그램의 흐름을 제어하기 위한 중요한 수단이지만, 잘못 사용하면 문법 오류로 이어질 수 있습니다. 항상 레이블 뒤에는 실행 가능한 문장을 작성해야 한다는 점을 기억하세요.

728x90