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

[C언어][Error] 100. duplicate label – 중복된 레이블 정의

by about_IT 2025. 5. 10.
728x90

이 오류는 동일한 이름의 레이블(label)을 하나의 함수 또는 블록 내에서 두 번 이상 정의했을 때 발생합니다. C언어에서 레이블은 고유해야 하며, 같은 이름을 가진 레이블을 중복으로 정의하면 컴파일러는 충돌로 간주하고 오류를 발생시킵니다.

 

주로 goto 문을 사용할 때 실수로 같은 이름을 반복 선언하는 경우에 나타납니다.

 


● 오류 예제

#include <stdio.h>

int main() {
    goto label;
label:
    printf("첫 번째 레이블\n");
label:  // 오류: 레이블 중복 정의
    printf("두 번째 레이블\n");
    return 0;
}

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

error: duplicate labellabel

 


● 해결 방법

레이블 이름은 동일 함수 내에서 중복될 수 없으므로, 각 레이블마다 고유한 이름을 사용해야 합니다. 아래는 수정된 예시입니다.

#include <stdio.h>

int main() {
    goto label1;
label1:
    printf("첫 번째 레이블\n");
label2:
    printf("두 번째 레이블\n");
    return 0;
}

출력 결과:

첫 번째 레이블
두 번째 레이블

 


● 실전 팁

  • 레이블은 함수 내에서 유일해야 합니다.
  • 중복된 레이블이 없도록 신중하게 네이밍하세요.
  • goto 사용 시 레이블 위치와 이름이 정확한지 항상 확인하세요.

 

레이블은 흐름 제어에 유용하지만 중복될 경우 컴파일 오류를 유발하므로, 이름 충돌을 피하고 코드의 명확성을 유지하는 것이 중요합니다.

728x90