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

[C언어][Error] 102. enum constant defined multiple times – enum 상수 중복 정의

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

이 오류는 동일한 이름의 열거형 상수(enum constant)가 하나의 열거형(enum) 내에서 두 번 이상 정의되었을 때 발생합니다. C언어에서 열거형 상수는 전역적인 정수 상수로 취급되기 때문에, 같은 이름을 중복해서 정의할 수 없습니다.

 

이 오류는 주로 enum 정의 중 실수로 중복된 이름을 사용하거나, 다른 헤더 또는 enum 블록에서 동일한 이름을 사용하는 경우에 발생합니다.

 


● 오류 예제

#include <stdio.h>

enum Color {
    RED,
    GREEN,
    RED  // 오류: RED가 두 번 정의됨
};

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

error: enum constant ‘RED’ defined multiple times

 


● 해결 방법

열거형 상수는 유일해야 하므로 중복된 이름을 제거하거나 이름을 변경해야 합니다. 다음은 수정된 예시입니다.

#include <stdio.h>

enum Color {
    RED,
    GREEN,
    BLUE  // 중복 없는 상수 이름
};

 


● 실전 팁

  • enum 내의 모든 상수 이름은 유일해야 합니다.
  • enum 이름이 전역으로 취급되므로 프로젝트 전반에 걸쳐 중복되지 않도록 주의하세요.
  • 자동 완성 기능을 사용하거나 헤더 파일 간 충돌 여부를 확인하는 습관이 필요합니다.

 

C언어에서 enum 상수는 코드 전체에서 사용 가능한 고유 식별자 역할을 하므로, 항상 유일한 이름을 사용해야 하며, 중복 정의는 컴파일 오류로 이어진다는 점을 명심하세요.

728x90