C구조체와 문자열

enum과 typedef

이름 있는 정수 상수 집합인 `enum`과 타입 별칭을 만드는 `typedef`의 역할을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

c
enum Status {
    STATUS_OK,
    STATUS_WARN,
    STATUS_ERROR
};

typedef unsigned long ulong;

설명

  • enum은 의미 있는 이름을 가진 정수 상수 집합을 만들 때 유용합니다.
  • 코드에 숫자 0, 1, 2를 흩뿌리는 것보다 상태 이름을 직접 쓰면 가독성이 훨씬 좋아집니다.
  • typedef는 기존 타입에 별칭을 붙이는 기능이지, 새로운 독립 타입을 만드는 기능은 아닙니다.
  • 구조체 선언과 typedef를 함께 써서 긴 타입 이름을 줄이는 패턴도 매우 흔합니다.

짧은 예제

c
#include <stdio.h>

enum Status {
    STATUS_OK,
    STATUS_FAIL
};

int main(void) {
    enum Status result = STATUS_OK;
    if (result == STATUS_OK) {
        printf("success\n");
    }
    return 0;
}

빠른 정리

항목설명
enum이름 있는 정수 상수 집합
상태 표현코드 의미를 숫자보다 명확하게 드러냄
typedef기존 타입의 별칭을 만듦
구조체 별칭typedef struct ... Name; 패턴이 흔함
타입 안정성typedef는 별칭일 뿐이라 완전한 새 타입은 아님

주의할 점

enum 값은 결국 정수로 다뤄지므로 문자열처럼 출력되지는 않습니다. 화면에 이름을 보여 주고 싶다면 별도의 매핑 테이블이나 switch가 필요합니다.