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;
}
نکات مهم
- enum در واقع عدد صحیح است — میتوانید با %d چاپش کنید
- اسعار enum را با حروف بزرگ بنویسید (قرارداد رایج)
- enum خوانایی و نگهداری کد را بهشدت بهتر میکند
این مبحث بخشی از دوره آموزش کامل زبان C است.