एन्यूमरेटेड डेटा टाइप क्या है?
प्रोग्रामर्स को अपने डेटा टाइप्स बनाने और उन वेरिएबल्स के संभावित मान परिभाषित करने की अनुमति देता है। कीवर्ड: enum।
सिंटैक्स
enum tagname {
identifier1, identifier2, ..., identifier_n
};
उदाहरण: सप्ताह के दिन
enum week {
mon, tue, wed, thu, fri, sat, sun
};
डिफ़ॉल्ट रूप से पहचानकर्ता मान 0 से शुरू होते हैं: mon=0, tue=1, ..., sun=6।
प्रोग्राम 1: डिफ़ॉल्ट मान
#include <stdio.h>
int main() {
enum week {mon, tue, wed, thu, fri, sat, sun};
printf("Monday = %d\n", mon);
printf("Thursday = %d\n", thu);
printf("Sunday = %d\n", sun);
return 0;
}
आउटपुट
Monday = 0 Thursday = 3 Sunday = 6
प्रोग्राम 2: कस्टम प्रारंभिक मान
#include <stdio.h>
int main() {
enum week {mon=1, tue, wed, thu, fri, sat, sun};
printf("Monday = %d\n", mon);
printf("Thursday = %d\n", thu);
printf("Sunday = %d\n", sun);
return 0;
}
आउटपुट
Monday = 1 Thursday = 4 Sunday = 7
मुख्य विशेषताएं
- पहचानकर्ता अनसाइन्ड इंटीजर्स होते हैं।
- पहले का डिफ़ॉल्ट 0, बाद के क्रमिक बढ़ते हैं।
- किसी को भी स्पष्ट मान असाइन कर सकते हैं; बाद वाले स्वतः बढ़ते हैं।
- एक ही enum में डुप्लीकेट मान अनुमत हैं।
- enum वेरिएबल्स केवल परिभाषित मान ले सकते हैं (कंपाइलर चेक नहीं करता लेकिन अच्छी प्रैक्टिस)।
उपयोग केस
- स्टेट मशीन स्टेट्स:
enum state {IDLE, RUNNING, ERROR}; - मेनू विकल्प:
enum menu {NEW, OPEN, SAVE, EXIT}; - फ्लैग्स/कॉन्स्टेंट्स समूहित करने के लिए।