Nagie's DevStory

[C] 38. 열거형(enum) 이란? 본문

Programming/C

[C] 38. 열거형(enum) 이란?

Nagie 2023. 10. 6. 00:53
728x90

열거형이란 문자열이 정수형 상수를 대신하도록 정의할 수 있는 문법이다.

 

간단히 설명하자면 프로그래머가 알아보기 쉽게 숫자를 문자열로 재정의한다는 뜻이며

 

아래의 코드처럼 사용할 수 있다.

 

//초깃값이 없는 열거형

enum E_MY_ENUM {

     FIRST,
     SECOND,
     THIRD
};


//초깃값이 있는 열거형

enum E_MY_ENUM {

     FIRST = 1,
     SECOND = 2,
     THIRD = 3
};

 

열거형은 초깃값이 없으면 첫 문자열에 해당하는 상수가 0부터 1씩 증가하게 된다.

 

위의 코드를 참고하면 FIRST는 곧 숫자 0이고 SECOND는 숫자 1 이란 말이다.

 

그리고 첫 문자열에만 초깃값이 지정되어 있다면 그 숫자부터 1씩 증가하는 형태가 된다.

 

물론 문자열마다 프로그래머가 상수를 지정해 놓았다면 의미가 없으며

 

또한 열거형(enum) 역시 자료형의 일종이기 때문에 typedef로 재정의해서 사용할 수 있다.

 

//typedef로 재정의가 되지 않은 열거형(enum)

enum E_NUMS { ZERO , ONE , TWO };


//typedef로 재정의가 된 열거형(enum)

typedef enum E_NUMS { ZERO , ONE , TWO } MY_ENUMS;

 

typedef로 재정의하게 되면 앞서 공부한 구조체(struct)처럼 사용선언 시 enum 키워드를 생략할 수 있다.

 

사용예시는 아래와 같다.

 

//typedef로 재정의 되지않은 열거형(enum) 사용선언
enum E_NUMS { ZERO , ONE , TWO };

enum E_NUMS myNums;

myNums = ONE;


//typedef로 재정의가 된 열거형(enum) 사용선언

typedef enum E_NUMS { ZERO , ONE , TWO } MY_ENUMS;

MY_ENUMS myNums;

myNums = ONE;

 

728x90
Comments