본문 바로가기
프로그래밍언어/C언어[Error]

[C언어][Error] 074. use of undeclared label – 선언되지 않은 레이블 사용

by about_IT 2025. 5. 2.
728x90

이 오류는 goto 문에서 사용된 레이블(label)이 코드 내에 정의되어 있지 않을 때 발생합니다. C언어에서 goto는 지정한 레이블로 무조건적인 흐름 이동을 수행하지만, 레이블이 존재하지 않으면 컴파일러는 문맥을 해석할 수 없기 때문에 오류를 발생시킵니다.


이 오류는 주로 레이블 이름의 오타, 정의 위치 누락, 또는 코드 정리 중 레이블 삭제 후 사용 코드가 남아 있는 경우 발생합니다.



● 오류 예제

#include <stdio.h>

int main() {
    goto end;  // 오류: end 레이블이 선언되지 않음
    return 0;
}

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

error: use of undeclared label ‘end


● 해결 방법

goto에서 사용되는 레이블은 코드 내에 반드시 선언되어 있어야 하며, 중복 없이 유일해야 합니다.

#include <stdio.h>

int main() {
    goto end;
    printf("이 문장은 실행되지 않음\n");

end:
    printf("레이블 end에 도달함\n");
    return 0;
}

출력 결과:

레이블 end에 도달함


● 실전 팁

  • goto 문은 사용할 경우 해당 레이블이 반드시 코드 내에 정의되어 있어야 합니다.
  • 레이블 이름에 오타가 있는 경우 오류가 발생하므로 주의 깊게 작성하세요.
  • 가독성을 위해 goto는 되도록 사용을 피하고, 필요 시 명확하게 관리하세요.

C언어에서 goto 문은 강력한 흐름 제어 수단이지만, 잘못 사용하면 구조적인 오류를 유발할 수 있으므로 항상 해당 레이블의 정의 여부를 명확히 확인해야 합니다.

반응형