Enum(열거형)은 변수가 아니라 값의 정의입니다. typedef를 해서 사용하면 편리합니다.
우선 #define과 비교하자면,
#define zero 0
i = zero;
여기에서 i 에는 0이 할당됩니다. zero가 0으로 치환 됩니다. 말 그대로 문자 바꾸기를 컴파일러에서 해주는 것에 불과합니다. enum과 typedef를 같이 사용해 봅시다.
typedef enum
{
RED,
GREEN,
PUCE
}colors_t;
colors_t favorite = PUCE;
C언어에는 없는 bool type을 만들 어서 다음과 같이 사용 할 수도 있습니다.
typedef enum
{
false=0,
true=1
}bool;
bool isTrue = false;
위와 같이 사용하면 false는 0, true는 1과 값이 들어가는데 숫자로 사용하려면 원하는 타입으로 casting하면 됩니다.
int isNumber;
isNumber = (int)isTrue;
몇가지 유용한 enum을 사용해봅시다.
typedef enum
{
false = 0,
true = 1
}bool;
typedef enum
{
on = 1,
off = 0
}power;
typedef enum
{
low = 0,
high = 1
}switch_t;
enum과 typedef의 조합은 행여 발생할 수 있는 의도하지 않은 프로그램 에러를 미리 방지 할 수 있게 해줍니다.
감사합니다.
'▶ 이전글 > C Coding' 카테고리의 다른 글
2차원배열, 함수 매개변수로 넘기는 방법과 파일명 정렬 소스 (0) | 2015.09.15 |
---|---|
불완전 선언(구조체전방선언) (0) | 2014.10.02 |
static (0) | 2014.10.02 |
typedef, define (0) | 2014.10.02 |
assertion (0) | 2014.10.02 |