Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 열거형(enum) 개념과 사용법 완벽 정리

열거형(Enumeration)은 C 언어에서 사용자가 직접 정의하는 데이터 타입입니다. 정수 상수에 의미 있는 이름을 부여함으로써 프로그램의 가독성과 유지보수성을 크게 높여줍니다. 열거형을 선언할 때는 enum 키워드를 사용합니다.

열거형 선언 문법

C 언어에서 enum을 선언하는 기본 문법은 다음과 같습니다.

enum enum_name{const1, const2, ....... };

enum 타입 변수 정의하기

enum 키워드는 열거형 타입의 변수를 정의할 때도 사용됩니다. 변수를 정의하는 방법은 크게 두 가지입니다. 먼저 열거형을 선언한 후 별도로 변수를 정의하는 방식은 다음과 같습니다.

enum week{sunday, monday, tuesday, wednesday, thursday, friday, saturday};
enum week day;

첫 번째 줄에서 열거형 'week'를 선언하고, 두 번째 줄에서 해당 타입의 변수 'day'를 정의합니다. 또는 아래처럼 열거형을 선언하면서 동시에 변수를 정의할 수도 있습니다.

enum week{sunday, monday, tuesday, wednesday, thursday, friday, saturday} day;

예제

다음은 C 언어에서 열거형을 활용한 예제입니다.

#include<stdio.h>
enum week{Mon=10, Tue, Wed, Thur, Fri=10, Sat=16, Sun};
enum day{Mond, Tues, Wedn, Thurs, Frid=18, Satu=11, Sund};
int main() {
   printf("The value of enum week: %d\t%d\t%d\t%d\t%d\t%d\t%d\n\n",Mon , Tue, Wed, Thur, Fri, Sat, Sun);
   printf("The default value of enum day: %d\t%d\t%d\t%d\t%d\t%d\t%d",Mond , Tues, Wedn, Thurs, Frid, Satu, Sund);
   return 0;
}

실행 결과

The value of enum week: 10 11 12 13 10 16 17
The default value of enum day: 0 1 2 3 18 11 12

코드 설명

위 프로그램에서는 weekday라는 두 개의 열거형이 main() 함수 외부에서 선언되었으며, main() 함수 안에서 printf()를 통해 각 열거형 요소들의 값을 출력합니다.

week 열거형에서는 Mon이 10으로 초기화되었기 때문에 이후 요소인 Tue, Wed, Thur는 각각 11, 12, 13으로 하나씩 증가합니다. 그다음 Fri가 다시 10으로 지정되고, Sat는 16, Sun은 17이 됩니다.

반면 day 열거형에는 별도의 초기값이 없으므로 첫 번째 요소 Mond부터 기본값 0, 1, 2, 3이 차례대로 할당됩니다. 이후 Frid=18, Satu=11이 명시적으로 지정되었고, 마지막 요소 Sund는 이전 값보다 1 증가한 12가 됩니다.

즉, 열거형 요소에 초기값을 지정하지 않으면 첫 번째 요소는 자동으로 0부터 시작하고, 이후 요소들은 이전 값보다 1씩 증가한다는 규칙을 기억하면 됩니다.