C언어에서 enum 활용하기: 가독성과 효율성을 높이는 방법
C언어에서 enum 활용하기: 가독성과 효율성을 높이는 방법
✅ 오늘의 핵심 메시지
enum은 숫자에 의미 있는 이름을 붙이는 기능입니다. 이는 프로그램의 가독성을 크게 향상시켜 줍니다.
✅ 오늘의 목표
enum 개념 이해, enum 선언 및 사용, switch문과 enum 활용, 실전 활용 사례 알아보기.
???? 숫자만 사용하면 생기는 문제
예를 들어 게임 캐릭터 상태를 표현한다고 가정해 보겠습니다. int state = 2; 여기서 2가 무엇을 의미할까요? 1 = 대기, 2 = 이동, 3 = 공격. 코드를 보는 사람은 알기 어렵습니다.
???? enum 등장
숫자에 이름을 붙여줍니다. 기본 문법은 다음과 같습니다:
enum State {
IDLE,
MOVE,
ATTACK
};
내부 값은 자동으로 부여됩니다. IDLE = 0, MOVE = 1, ATTACK = 2.
???? 사용 예제
#include <stdio.h>
enum State {
IDLE,
MOVE,
ATTACK
};
int main() {
enum State player = MOVE;
printf("%d\n", player);
return 0;
}
결과: 1
하지만 중요한 건 player = MOVE;로 숫자보다 의미를 쉽게 파악할 수 있습니다.
???? 값 직접 지정하기
enum State {
IDLE = 10,
MOVE = 20,
ATTACK = 30
};
결과: IDLE = 10, MOVE = 20, ATTACK = 30.
???? switch문과 함께 사용하기
#include <stdio.h>
enum State {
IDLE,
MOVE,
ATTACK
};
int main() {
enum State player = ATTACK;
switch(player) {
case IDLE:
printf("대기 상태\n");
break;
case MOVE:
printf("이동 상태\n");
break;
case ATTACK:
printf("공격 상태\n");
break;
}
return 0;
}
결과: 공격 상태
???? typedef와 함께 사용하기
실무에서는 보통 이렇게 사용합니다:
typedef enum {
RED,
GREEN,
BLUE
} Color;
사용 예: Color c = RED;
???? 실전 예제 - 요일 표현
#include <stdio.h>
typedef enum {
MON,
TUE,
WED,
THU,
FRI,
SAT,
SUN
} Day;
int main() {
Day today = FRI;
printf("%d\n", today);
return 0;
}
???? 실전 예제 - 게임 상태
typedef enum {
MENU,
PLAY,
PAUSE,
GAMEOVER
} GameState;
실제 게임 개발에서 자주 사용하는 방식입니다.
???? enum이 왜 중요한가요?
실제 프로그램에서는 게임 상태, 메뉴 상태, 사용자 권한, 네트워크 상태, 에러 코드 등을 표현할 때 많이 사용합니다.
???? enum 배열 활용
#include <stdio.h>
typedef enum {
APPLE,
BANANA,
ORANGE
} Fruit;
int main() {
Fruit basket[3] = {APPLE, BANANA, ORANGE};
for (int i = 0; i < 3; i++) {
printf("%d\n", basket[i]);
}
return 0;
}
⚠️ 자주 하는 실수
enum을 문자열로 착각하는 경우가 많습니다. printf("%s", MOVE);는 오류입니다. enum은 문자열이 아닙니다. 실제로는 정수입니다.
???? enum 값 확인
printf("%d", MOVE);
출력: 1
???? 퀴즈
다음 코드의 결과는 무엇일까요?
enum Level {
EASY,
NORMAL,
HARD
};
printf("%d", HARD);
A) 1, B) 2, C) 3, D) 오류
정답은? B번 (2)
???? 오늘 정리
enum은 정수에 이름을 붙이는 기능으로 가독성을 크게 향상시켜 주며, switch문과 궁합이 좋습니다. 게임, 네트워크, 상태 관리에 많이 사용됩니다.
워크넷(공공일자리 · 취업지원)에서는 다양한 일자리 정보를 제공합니다. 필요한 정보를 쉽게 찾아보세요!
글제목
#C언어 #프로그래밍 #enum #코딩학원 #코딩입문 #프로그래밍기초 #C언어기초 #switch문 #typedef #게임개발
- 이전글공조냉동기계기능사 실기시험, 성공적인 준비를 위한 가이드 26.10.12
- 다음글AI 시대의 권태 사회와 일자리 변화 26.10.12
등록된 댓글이 없습니다.
