본문 바로가기

C 언어/임베디드 C

열거형


열거형은 이름을 갖는 정수형의 상수를 정의하여 프로그램을 이해하기 쉽게 해 준다.
열거형은 예약어 enum을 사용하여 정의한다.

#include <stdio.h>

struct test
{
  int one;
};

enum test2
{
  ZERO = 100,
  ONE,
  TWO    //기준점으로부터 1씩 증가
};

int main()
{
  struct test a;

  a.one = ONE;
  
  printf("a.one = %d\n", a.one);  //1 출력
  printf("ONE = %d\n", ONE);    //1 출력
  printf("ZERO = %d\n", ZERO);  //0 출력
  printf("TWO = %d\n", TWO);    //2 출력
  
  return 0;
}


[결과]



ZERO에 100이라는 수가 없다면 0으로 나온다.


#include <stdio.h>

struct test
{
  int one;
};

enum test2
{
  ZERO = 100,
  ONE = 105,  //#define ONE 105와 같은 효과(전처리), enum은 C (이게더좋음)
  TWO    //기준점으로부터 1씩 증가
};

int main()
{
  struct test a;
  enum test2 b;  //b는 unsigned int형
  
  a.one = ONE;
  b = ONE;
  
  printf("a.one = %d\n", a.one);  //1 출력
  printf("ONE = %d\n", ONE);    //1 출력
  printf("ZERO = %d\n", ZERO);  //0 출력
  printf("TWO = %d\n", TWO);    //2 출력
  
  printf("b = %d\n", ONE);
  
  b = 105;
  printf("b = %d\n", b);
  
  return 0;
}


[결과]

'C 언어 > 임베디드 C' 카테고리의 다른 글

FILE 구조체  (0) 2011.11.15
공용체(메모리 겹쳐쓰기를 허용)  (0) 2011.08.22
연결리스트  (0) 2011.07.08
구조체를 함수의 인수로 전달하는 방법  (0) 2011.07.07
구조체를 가리키는 포인트변수  (0) 2011.07.07