Structures & Unions
Enums
Named Constants
💡 Enum ek dropdown menu jaisa hai jisme sirf fixed options hain — jaise days of the week (Monday, Tuesday...) ko random numbers (0, 1, 2...) ki jagah readable naam dena.
enum ek set of named integer constants define karta hai — internally ye sab ints hote hain (0 se shuru, automatically increment), lekin code mein readable naam se refer kiya ja sakta hai, magic numbers (0, 1, 2) ki jagah.
Ye code ko bahut zyada readable banata hai — if (day == MONDAY) if (day == 0) se bahut zyada samajhne mein aasan hai. Enum values ko manually bhi specific numbers assign kar sakte ho.
enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
// SUNDAY = 0, MONDAY = 1, ... automatically
enum Status { ACTIVE = 1, INACTIVE = 0, PENDING = 2 }; // manually assign bhi kar sakte ho
int main() {
enum Day today = WEDNESDAY;
if (today == WEDNESDAY) {
printf("Beech hafte ka din hai\n");
}
printf("%d\n", today); // 3 (internally int)
return 0;
}🔢
Enum ek dropdown menu jaisa hai jisme sirf fixed options hain — jaise days of the week (Monday, Tuesday...) ko random numbers (0, 1, 2...) ki jagah readable naam dena.
1 / 2
⚡ Quick Recap
- enum = named integer constants, readable code ke liye
- Default: 0 se shuru, automatically +1
- Manually specific values bhi assign kar sakte ho
Is page mein (1 subtopics)
Enums switch statements ke saath bahut natural lagte hain — code self-documenting ban jaata hai, aur kai compilers warning dete hain agar tum kisi enum value ko switch mein handle karna bhool jaao.
enum Direction { NORTH, SOUTH, EAST, WEST };
void move(enum Direction d) {
switch (d) {
case NORTH: printf("Moving up\n"); break;
case SOUTH: printf("Moving down\n"); break;
case EAST: printf("Moving right\n"); break;
case WEST: printf("Moving left\n"); break;
}
}Tip: Kuch compilers (-Wswitch flag ke saath gcc) warning dete hain agar switch mein saare enum values handle nahi kiye gaye — ye bahut useful hai jab baad mein enum mein naya value add karo aur bhool jaao use handle karna.