Nagie's DevStory
[C] 38. 열거형(enum) 이란? 본문
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