#include<stdio.h> 

 

enum color {RED, GREEN=2, BLUE}; //enumeration(열거, 목록) 사용자자료형 정의
                                          //red, green, blue는 상수이다.
typedef enum color color;                 //이것들은 디폴트가 앞에서부터 0,1,2로 시작한다.
                                          //만약 green이 2라면 red는 0, green은 2, blue는 3이된다.
main()
{
        color c1, c2, c3;

 

        c1 = RED, c2 = GREEN, c3 = BLUE;

 

        printf("RED=%d, GREEN=%d, BLUE=%d\n", c1, c2,c3);
        printf("RED=%d, GREEN=%d, BLUE=%d\n", RED, GREEN, BLUE);

 

        return 0;
}

 


 

열거형의 정의는 두 가지 의미를 지닌다. 

 

1. color라는 이름의 자료형(열거형)정의. 

2. 상수의 선언.

 

----------------------------------------------------------------------------------------------------------------

 

#include<stdio.h> 

 

typedef enum days {MON,TUE,WED,THU,FRI,SAT,SUN} days; 

 

main()
{
        days day; //열거형 days의 변수 day를 생성.

 

        printf("Input a day(0:Monday ~ 6:Sunday) : ");
        scanf("%d", &day);

 

        switch(day)
        {
        case MON: //case 0: 이랑 똑같은 의미.
                printf("월요일입니다.\n");
                break;
        case TUE:
                printf("화요일입니다.\n");
                break;
        case WED:
                printf("수요일입니다.\n");
                break;
        case THU:
                printf("목요일입니다.\n");
                break;
        case FRI:
                printf("금요일입니다.\n");
                break;
        case SAT:
                printf("토요일입니다.\n");
                break;
        case SUN:
                printf("일요일입니다.\n");
                break;
        }

 

        return 0;

 


열거형을 사용하는 이유 

 

1. 열거형을 사용함으로써 변수가 지니는 값에 의미를 부여할 수 있다. 

2. 프로그램의 가독성이 높아진다. (가독성: 전체코드 쉽게 분석, 코드의 일부분만을 보고서도 의미 파악)

 

열거형은 switch문하고 비번하게 사용되어진다.

Posted by scii
: