Recircle 2019. 6. 3. 12:03

변수가 가질 수 있는 값들을 미리 열거해 놓은 자료형.

ex)요일을 저장하고 있는 변수는 (일, 월, 화, 수, 목, 금, 토) 중의 하나만 가질수 있다.



열거형이 필요한 이유

-오류을 줄이고 가동성을 높임.




열거형의 정의

1
2
3
4
enum days
{
    SUN, MON, TUE, WED, THU, FRI, SAT
};
cs

enum == 열거형을 정의할 때 사용하는 키워드

days == 열거형의 이름(태그)



열거형의 변수

1
2
enum days today; // 변수 today정의, today는 열거형 days에 저으이된 값만 가짐.
today = SUN;

cs


1
2
enum days today;
today = MY_DAY
cs

이렇게 하면 오류가 뜬다.




열거형의 초기화



기호 상수들의 값

1
2
3
4
5
6
7
8
9
10
11
12
13
14
enum days
{
    SUN, MON, TUE, WED, THU, FRI, SAT
}; // SUN=0, MON=1
 
enum days
{
    SUN=1, MON, TUE, WED, THU, FRI, SAT
}; // SUN=1, MON=2
 
enum days
{
    SUN=7, MON, TUE, WED, THU, FRI, SAT
}; // SUN=7, MON=1
cs




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
enum days
{
    SUN, MON, TUE, WED, THU, FRI, SAT
};
 
char *days_name[] = {
    "sunday","monday","tuesday","wednesday","thursday","friday","saturday"
};
 
int main()
{
    enum days d;
    d = WED;
    printf("%d번째 요일은 %s입니다.", d, days_name[d]);
    return 0;
}

cs



다른 방법들과의 비교