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
문은 강력한 흐름 제어 수단이지만, 잘못 사용하면 구조적인 오류를 유발할 수 있으므로 항상 해당 레이블의 정의 여부를 명확히 확인해야 합니다.
반응형