0Pricing
C Academy · 강의

열거형 정의하기

읽기 쉬운 이름 있는 값을 만들어 보세요.

열거형 정의하기은(는) CoddyKit의 무료 C Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

열거형이란 무엇인가요

열거형(enum)은 이름이 지정된 정수 상수들을 하나로 묶은 사용자 정의 형식입니다.

0이 월요일이고 1이 화요일이라는 것을 기억하는 대신, 해당 숫자에 읽기 쉬운 이름을 부여합니다. 이렇게 하면 코드가 더 명확해지고 실수하기도 어려워집니다.

기본 문법

enum 키워드와 태그 이름, 그리고 중괄호 안의 이름 목록을 사용해 열거형을 선언합니다.

각 이름은 정수가 필요한 모든 곳에서 사용할 수 있는 상수가 됩니다.

enum Weekday { MON, TUE, WED, THU, FRI };

기본값은 0부터 시작합니다

기본적으로 첫 번째 이름은 0이고, 그다음 이름부터는 이전 값보다 1씩 커집니다.

따라서 enum Weekday에서 MON은 0, TUE는 1, WED는 2가 되고, 이후에도 같은 방식으로 이어집니다.

#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
    printf("%d %d %d\n", MON, TUE, WED);
    return 0;
}

열거형 변수 선언하기

열거형 형식이 있으면 해당 형식의 변수를 만들 수 있습니다.

변수에는 이름이 지정된 값 중 하나가 저장됩니다. 내부적으로는 단순한 int입니다.

#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
    enum Weekday today = WED;
    printf("today = %d\n", today);
    return 0;
}

열거형이 가독성을 높이는 이유

if (state == 2)와 if (state == PAUSED)를 비교해 보십시오.

두 번째 코드는 자체적으로 의미를 설명합니다. 열거형을 사용하면 의미를 컴파일러가 추적하므로, 알 수 없는 숫자 대신 이름이 있는 값을 읽으며 코드를 이해할 수 있습니다.

enum Status { RUNNING, PAUSED, STOPPED };

switch와 함께 열거형 사용하기

열거형은 switch 문과 자연스럽게 함께 사용할 수 있습니다. 이름이 지정된 각 값이 명확한 case 레이블이 됩니다.

이는 실제 프로그램에서 열거형을 사용하는 가장 일반적인 방법 중 하나입니다.

#include <stdio.h>
enum Status { RUNNING, PAUSED, STOPPED };
int main(void) {
    enum Status s = PAUSED;
    switch (s) {
        case RUNNING: printf("running\n"); break;
        case PAUSED:  printf("paused\n");  break;
        case STOPPED: printf("stopped\n"); break;
    }
    return 0;
}

열거형은 단지 정수입니다

열거형 상수는 정수와 서로 바꾸어 사용할 수 있습니다. 열거형 상수로 산술 연산과 비교를 수행할 수 있습니다.

이러한 유연성은 편리하지만, C가 범위를 벗어난 숫자를 저장하는 것도 막아 주지 않는다는 뜻이기도 합니다.

#include <stdio.h>
enum Level { LOW, MID, HIGH };
int main(void) {
    enum Level next = LOW + 1;
    printf("%d\n", next);
    return 0;
}

이름 없는 열거형

명명된 형식은 필요 없고 상수만 필요하다면 태그 이름을 생략할 수 있습니다.

이는 관련된 정수 상수 그룹을 빠르게 정의하는 방법입니다.

#include <stdio.h>
enum { RED, GREEN, BLUE };
int main(void) {
    printf("%d %d %d\n", RED, GREEN, BLUE);
    return 0;
}

이름 작성 규칙

관례상 열거형 상수 이름은 매크로처럼 UPPER_CASE로 작성합니다.

이는 해당 값이 변경되지 않는 상수임을 독자에게 알려 줍니다. 태그 이름에는 CamelCase 또는 PascalCase를 사용하는 경우가 많습니다.

enum TrafficLight { LIGHT_RED, LIGHT_YELLOW, LIGHT_GREEN };

typedef와 함께 사용하기

어디서나 enum Weekday라고 작성하면 장황합니다. typedef를 사용하면 짧은 이름을 쓸 수 있습니다.

typedef를 사용한 뒤에는 enum 키워드 없이 Weekday today;처럼 변수를 선언할 수 있습니다.

#include <stdio.h>
typedef enum { MON, TUE, WED } Weekday;
int main(void) {
    Weekday d = TUE;
    printf("%d\n", d);
    return 0;
}

열거형 상수의 범위

열거형 상수 이름은 해당 범위의 일반 식별자와 같은 이름 공간을 공유합니다.

따라서 같은 범위에 있는 두 열거형은 동일한 상수 이름을 다시 사용할 수 없습니다. 충돌을 피하려면 서로 다른 이름을 선택하십시오.

enum A { OPEN, CLOSED };
enum B { LOCKED, UNLOCKED };

빠른 확인

열거형 기본값에 대한 이해도를 확인해 보십시오.

요약

열거형은 이름이 지정된 정수 상수를 정의합니다. 첫 번째 값은 0이고, 별도로 지정하지 않으면 이후의 각 이름은 앞선 값보다 1씩 커집니다.

열거형을 사용하면 코드의 가독성이 높아지고 switch와 잘 어울리며, typedef로 이름을 짧게 만들 수도 있습니다. 다음에는 사용자 지정 값과 범위를 살펴보겠습니다.

자주 묻는 질문

“열거형 정의하기” 강의는 무료인가요?

네 — “열거형 정의하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C Academy 강의 전체를 잠금 해제할 수 있습니다. C Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“열거형 정의하기”에서 뭘 배우나요?

읽기 쉬운 이름 있는 값을 만들어 보세요. 브라우저에서 직접 실행하는 실습 코드로 C Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“열거형 정의하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 열거형 정의하기
  2. 열거형 값과 범위
  3. const 변수
  4. #define 상수
← C Academy(으)로 돌아가기