पाठ 27 / 36
यूनियन्स और एनम्स
यूनियन मेमोरी साझा करता है; एनम पूर्णांक स्थिरांक के समूह को नाम देता है।
यूनियन: एक स्लॉट, कई टाइप
union के सभी मेंबर एक ही मेमोरी साझा करते हैं — इसका आकार सबसे बड़े मेंबर के बराबर होता है, और एक मेंबर लिखने से बाकी ओवरराइट हो जाते हैं। इसके विपरीत, स्ट्रक्चर हर मेंबर को अपनी जगह देता है।
यूनियन काम में
सिर्फ सबसे हाल में लिखा गया मेंबर ही वैध मान रखता है।
union Data {
int i;
float f;
};
union Data d;
d.i = 10;
printf("%d\n", d.i); // 10
d.f = 3.14f;
printf("%d\n", d.i); // garbage now -- i was overwritten
Output:
10
एनम स्थिरांक को नाम देता है
enum संबंधित पूर्णांक स्थिरांकों की सूची देता है, डिफ़ॉल्ट रूप से 0 से शुरू होकर, जिससे कोड कच्चे नंबरों से ज़्यादा पठनीय बनता है।
enum Day { MON, TUE, WED, THU, FRI, SAT, SUN };
enum Day today = WED;
printf("%d\n", today); // 2
Output:
2