열거형은 이름을 갖는 정수형의 상수를 정의하여 프로그램을 이해하기 쉽게 해 준다.
열거형은 예약어 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;
}
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;
}
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 |