C 언어에서 enum
은 **열거형(Enumeration type)**을 정의할 때 사용하는 키워드입니다. 열거형은 정수 값에 이름을 부여하여 코드의 가독성을 높이고, 특정 상수의 집합을 명확하게 표현할 때 사용합니다.
쉽게 말해, 어떤 변수가 가질 수 있는 값들을 미리 정의해 놓고, 그 값들에 의미 있는 이름을 붙여주는 기능이라고 생각하시면 됩니다.
enum
을 사용하는 이유 및 장점RED
, GREEN
, BLUE
)을 사용하므로 코드를 읽고 이해하기 쉬워집니다.if (color == 0)
보다 if (color == RED)
가 훨씬 직관적입니다.enum
정의만 수정하면 해당 상수를 사용하는 모든 코드에 자동으로 반영됩니다. (매크로 #define
과 유사하지만, enum
은 자체적인 데이터 타입을 형성한다는 차이가 있습니다.)enum
의 기본 문법enum
은 다음과 같이 정의합니다.
enum 열거형_이름 {
열거_상수1,
열거_상수2,
열거_상수3,
// ...
};
예시:
요일을 나타내는 열거형을 정의하고 싶을 때:
enum DayOfWeek {
SUNDAY, // 기본값 0
MONDAY, // 기본값 1
TUESDAY, // 기본값 2
WEDNESDAY, // 기본값 3
THURSDAY, // 기본값 4
FRIDAY, // 기본값 5
SATURDAY // 기본값 6
};
enum
상수의 값enum
상수는 기본적으로 정수 값을 가집니다.
자동 할당: 특별히 값을 지정하지 않으면, 첫 번째 상수는 0
부터 시작하여 다음 상수들은 1씩 증가한 값을 가집니다. (위 DayOfWeek
예시처럼)
명시적 값 지정: 특정 상수에 원하는 정수 값을 명시적으로 지정할 수 있습니다.C
enum Color {
RED = 10, // RED는 10
GREEN, // GREEN은 11 (RED 다음이므로 10 + 1)
BLUE = 20, // BLUE는 20
YELLOW // YELLOW는 21 (BLUE 다음이므로 20 + 1)
};
중복 값: 여러 상수가 같은 값을 가질 수도 있습니다.C
enum Status {
SUCCESS = 0,
FAILURE = 1,
ERROR = 1 // FAILURE와 같은 값 (오류 처리 시 실패와 에러를 동일하게 볼 때 사용 가능)
};
enum
변수 선언 및 사용열거형을 정의한 후에는 해당 열거형 타입의 변수를 선언하고 사용할 수 있습니다.