hy30nq's blog
C 언어에서 열거체(Enumerations)에 대해 알아보기 본문
안녕하세요! 😊 오늘은 C 언어에서 중요한 개념 중 하나인 열거체(Enumeration)에 대해 알아보려고 해요. 열거체는 코드를 더 깔끔하고 이해하기 쉽게 만들어주는 아주 유용한 도구랍니다. 이제 열거체가 무엇인지, 왜 사용하는지, 그리고 예시를 통해 어떻게 사용하는지 자세히 살펴볼게요.
1. 열거체란 무엇인가요?
열거체는 여러 개의 상수를 한 곳에 모아 정의하는 방식이에요. 예를 들어, 요일, 계절, 상태 등을 열거체로 정의할 수 있어요. 이렇게 하면 코드의 가독성이 좋아지고, 잘못된 값을 사용할 가능성을 줄일 수 있답니다.
2. 왜 열거체를 사용하나요?
열거체를 사용하면 여러 가지 장점이 있어요:
- 가독성 향상: 열거체는 코드의 의미를 명확하게 만들어줘요.
- 유지보수 용이: 상수 값이 변경되더라도 열거체만 수정하면 돼요.
- 타입 안전성: 열거체를 사용하면 잘못된 값이 사용되는 것을 방지할 수 있어요.
3. 열거체 예시
그럼 이제 열거체의 사용 예시를 몇 가지 들어볼게요.
예시 1: 요일 열거체
#include <stdio.h>
enum Day {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY
};
int main() {
enum Day today = MONDAY;
printf("오늘의 요일 번호: %d\n", today);
return 0;
}
위 예시는 요일을 나타내는 열거체예요. 이제 코드를 작성할 때 요일을 직접 입력하는 대신 MONDAY
같은 형태로 사용할 수 있답니다.
예시 2: 계절 열거체
#include <stdio.h>
enum Season {
SPRING,
SUMMER,
FALL,
WINTER
};
int main() {
enum Season currentSeason = SPRING;
printf("현재 계절 번호: %d\n", currentSeason);
return 0;
}
이 예시는 계절을 나타내는 열거체에요. SPRING
처럼 사용할 수 있어요.
예시 3: 주문 상태 열거체
#include <stdio.h>
enum OrderStatus {
PENDING,
PROCESSING,
COMPLETED,
CANCELLED
};
int main() {
enum OrderStatus order = PROCESSING;
printf("주문 상태 번호: %d\n", order);
return 0;
}
이 예시는 주문 상태를 나타내는 열거체예요. 이렇게 하면 주문 상태를 문자열로 관리하는 것보다 훨씬 안전하고 명확하게 관리할 수 있죠.
4. 열거체의 값이 1씩 증가하는 방식
열거체를 선언할 때 기본적으로 첫 번째 항목의 값은 0이고, 그 다음 항목들은 이전 항목의 값에 1씩 추가된 값으로 설정돼요. 이를 통해 일일이 값을 지정하지 않아도 자동으로 1씩 증가한 값을 가지게 됩니다.
예를 들어, 다음과 같은 열거체를 살펴볼까요?
#include <stdio.h>
enum Day {
SUNDAY, // 0
MONDAY, // 1
TUESDAY, // 2
WEDNESDAY, // 3
THURSDAY, // 4
FRIDAY, // 5
SATURDAY // 6
};
int main() {
enum Day today = MONDAY;
printf("오늘의 요일 번호: %d\n", today); // 출력: 오늘의 요일 번호: 1
return 0;
}
위 예시에서 SUNDAY
는 0부터 시작하고, 그 다음 항목들은 1씩 증가하는 값을 가지게 됩니다.
특정 값에서 시작하기
열거체의 특정 항목에 값을 직접 지정할 수도 있어요. 이렇게 하면 그 다음 항목들은 지정한 값부터 1씩 증가한 값을 가지게 됩니다.
예를 들어, 다음과 같이 특정 항목부터 값을 지정할 수 있어요:
#include <stdio.h>
enum Month {
JANUARY = 1, // 1
FEBRUARY, // 2
MARCH, // 3
APRIL, // 4
MAY, // 5
JUNE, // 6
JULY, // 7
AUGUST, // 8
SEPTEMBER, // 9
OCTOBER, // 10
NOVEMBER, // 11
DECEMBER // 12
};
int main() {
enum Month thisMonth = AUGUST;
printf("이번 달의 번호: %d\n", thisMonth); // 출력: 이번 달의 번호: 8
return 0;
}
여기서 JANUARY
는 1로 설정했고, 그 다음 항목들은 1씩 증가하는 값을 가지게 돼요.
중간에 값을 지정하기
열거체의 중간에 값을 지정하면, 그 이후의 항목들은 지정한 값부터 1씩 증가하는 값을 가지게 됩니다.
다음 예시를 볼게요:
#include <stdio.h>
enum HttpStatus {
OK = 200, // 200
CREATED, // 201
ACCEPTED = 202, // 202
NO_CONTENT = 204, // 204
BAD_REQUEST = 400, // 400
UNAUTHORIZED, // 401
FORBIDDEN, // 403
NOT_FOUND // 404
};
int main() {
enum HttpStatus status = FORBIDDEN;
printf("HTTP 상태 코드: %d\n", status); // 출력: HTTP 상태 코드: 403
return 0;
}
위 예시에서는 OK
부터 CREATED
까지는 200, 201로 1씩 증가하고, ACCEPTED
부터는 다시 202로 설정했어요. 그리고 NO_CONTENT
는 204, BAD_REQUEST
는 400으로 지정한 후 그 다음 항목들은 1씩 증가하게 됩니다.
5. 결론
열거체는 프로그래밍에서 코드의 가독성을 높이고, 유지보수를 쉽게 하며, 타입 안전성을 보장하는 데 큰 도움이 돼요. 여러 가지 예시를 통해 열거체의 값 설정 방법을 이해할 수 있었길 바라요! 😊 실제 코드를 작성할 때 열거체를 적극 활용해보세요!