프로그래밍언어/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