열거형(enumerated data type)은 프로그래머가 자신만의 데이터 타입을 새로 정의하고, 해당 타입의 변수가 가질 수 있는 값들을 명확하게 지정할 때 사용되는 자료형입니다. 코드의 가독성을 높이고 의미 있는 이름으로 상수를 관리할 수 있어 실무에서 널리 활용됩니다.
열거형을 선언할 때 사용하는 키워드는 enum입니다.
문법(Syntax)
열거형 데이터 타입의 기본 문법은 다음과 같습니다.
enum tagname{
identifier1, identifier2,…….,identifier n
};
예시
다음은 열거형 데이터 타입의 간단한 예입니다.
enum week{
mon, tue, wed, thu, fri, sat, sun
};
위 예시에서 확인할 수 있는 핵심 내용은 다음과 같습니다.
- 식별자(identifier)의 값은 부호 없는 정수(unsigned integer)이며, 기본적으로 0부터 시작합니다.
- 따라서 mon은 0, tue는 1, wed는 2처럼 선언된 순서대로 값이 자동으로 매겨집니다.
C 프로그램 예제
다음은 열거형 데이터 타입을 활용한 C 프로그램입니다.
#include<stdio.h>
main ( ){
enum week {mon, tue, wed, thu, fri, sat, sun};
printf ("Monday = %d", mon);
printf ("Thursday = %d", thu);
printf ("Sunday = %d", sun);
}
실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Monday = 0 Thursday =3 Sunday =6
초기값 직접 지정하기
열거형의 식별자에는 원하는 초기값을 직접 할당할 수도 있습니다. 특정 식별자에 값을 지정하면, 이후에 선언된 식별자들은 그 값부터 1씩 증가한 값을 자동으로 갖게 됩니다.
C 프로그램 예제
다음은 초기값을 지정한 열거형 데이터 타입의 또 다른 C 프로그램 예제입니다.
#include<stdio.h>
main ( ){
enum week {mon=1, tue, wed, thu, fri, sat, sun};
printf ("Monday = %d", mon);
printf ("Thursday = %d", thu);
printf ("Sunday = %d", sun);
}
실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Monday = 1 Thursday =4 Sunday =7
이처럼 열거형(enum)을 활용하면 숫자보다 의미가 분명한 이름으로 상수를 다룰 수 있어, 코드의 가독성과 유지보수성이 크게 향상됩니다. 요일, 월, 상태 코드처럼 정해진 값의 집합을 표현할 때 특히 유용합니다.