enum

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;

 

위와 같이 사용하면 false0, true1과 값이 들어가는데 숫자로 사용하려면 원하는 타입으로 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;

 

enumtypedef의 조합은 행여 발생할 수 있는 의도하지 않은 프로그램 에러를 미리 방지 할 수 있게 해줍니다.

 

감사합니다.

'▶ 이전글 > 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