[C언어 스터디 - 08] 열거형 (enum)]
2020. 6. 28. 11:00ㆍ03. Resources/C, C++
728x90
반응형
열거형 사용하기
참고 문헌 (Ch 57): https://dojang.io/mod/page/view.php?id=480
열거형 정의하기
열거형을 사용하면 상수를 좀 더 편하게 정의 가능!
enum 을 이용하여 정의
enum 열거형이름 {
값1 = 초깃값,
값2,
값3
};
열거형 변수의 선언: enum (열거형 이름) (변수 이름);
예시 (요일)
#include <stdio.h>
enum DayOfWeek { // 열거형 정의
Sunday = 0, // 초깃값 할당
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
int main()
{
enum DayOfWeek week; // 열거형 변수 선언
week = Tuesday; // 열거형 값 할당
printf("%d\n", week); // 2: Tuesday의 값 출력
return 0;
}
물론 모든 값을 하나하나 정의할 수도 있음
enum Value {
ValueA = 1,
ValueB = 3,
ValueC = 7,
ValueD = 11
};
역시 typedef 를 적용해서 익명 열거형으로도 이용할 수 있음
typedef enum 열거형이름 {
값1 = 초깃값,
값2,
값3
} 열거형별칭;
typedef enum {
값1 = 초깃값,
값2,
값3
} 열거형별칭;
// e.g.
typedef enum { // 익명 열거형 정의
Sunday = 0,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
} DayOfWeek; // typedef를 사용하여 열거형 별칭을 DayOfWeek로 정의
DayOfWeek week; // 열거형 별칭으로 공용체 변수 선언
구조체와 마찬가지로 열거형을 정의하는 동시에 변수 선언도 가능
enum 열거형이름 {
자료형 멤버이름;
} 변수;
열거형을 switch에 활용하기
활용하는 방법
switch (열거형변수)
{
case 열거형값:
실행할코드;
break;
}
예시
#include <stdio.h>
enum LuxSkill {
LightBinding = 1,
PrismaticBarrier,
LucentSingularity,
FinalSpark
};
int main()
{
enum LuxSkill skill; // 열거형 변수 선언
skill = LightBinding; // 열거형 값 할당
switch (skill)
{
case LightBinding: // 열거형 값이 LightBinding일 때
printf("LightBinding\n");
break;
case PrismaticBarrier: // 열거형 값이 PrismaticBarrier일 때
printf("PrismaticBarrier\n");
break;
case LucentSingularity: // 열거형 값이 LucentSingularity일 때
printf("LucentSingularity\n");
break;
case FinalSpark: // 열거형 값이 FinalSpark일 때
printf("FinalSpark\n");
break;
default:
break;
}
return 0;
}
// 결과 : LightBinding
반응형
'03. Resources > C, C++' 카테고리의 다른 글
[C언어 스터디 - 10] 반환값을 이용하는 함수 (function using return) (0) | 2020.06.30 |
---|---|
[C언어 스터디 - 09] 기본적인 함수 내용 (function basic) (0) | 2020.06.29 |
[C언어 스터디 - 07] 구조체 배열 (struct array) (0) | 2020.06.27 |
[C언어 스터디 - 06] 구조체 멤버값 설정 (memset) (0) | 2020.06.26 |
[C언어 스터디 - 05] 구조체와 포인터 (struct and pointer) (0) | 2020.06.25 |