enum در C

تعریف ثابت‌های نام‌دار شمارشی با enum برای خوانایی بهتر کد

enum چیست؟

enum (Enumeration یا شمارش) نوع داده‌ای است که مجموعه‌ای از ثابت‌های نام‌دار صحیح را تعریف می‌کند. برای وقتی عالی است که یک متغیر فقط چند مقدار مشخص می‌پذیرد؛ مثل روزهای هفته یا وضعیت سفارش.

تعریف enum

enum WeekDay {
    MONDAY,     // 0
    TUESDAY,    // 1
    WEDNESDAY,  // 2
    THURSDAY,   // 3
    FRIDAY      // 4
};

به‌طور پیش‌فرض مقدار اولیه ۰ است و بعدی‌ها یکی‌یکی زیاد می‌شوند.

استفاده از enum

enum WeekDay today = WEDNESDAY;

if (today == WEDNESDAY) {
    printf("وسط هفته است!");
}

مقداردهی دستی

enum Level {
    LOW = 1,
    MEDIUM = 5,   // می‌تواند پرش داشته باشد
    HIGH = 10
};

enum Level myLevel = MEDIUM;
printf("%d", myLevel);  // 5

چرا enum بهتر از عدد خام است؟

// ❌ با عدد خام — معنی نامشخص
int status = 2;

// ✅ با enum — کاملاً گویا
enum Status { ACTIVE, INACTIVE, BANNED };
enum Status status = INACTIVE;

مثال کاربردی: وضعیت سفارش

enum OrderStatus {
    PENDING,
    SHIPPED,
    DELIVERED,
    CANCELLED
};

enum OrderStatus order = SHIPPED;

switch (order) {
    case PENDING:   printf("در انتظار پردازش"); break;
    case SHIPPED:   printf("ارسال شده"); break;
    case DELIVERED: printf("تحویل داده شده"); break;
    case CANCELLED: printf("لغو شده"); break;
}

نکات مهم

این مبحث بخشی از دوره آموزش کامل زبان C است.

ابزارهای مرتبط