# यूनियन्स और एनम्स — C प्रोग्रामिंग

Source: https://www.geekswithgeeks.com/hi/c/c-unions-enums

> यूनियन मेमोरी साझा करता है; एनम पूर्णांक स्थिरांक के समूह को नाम देता है।

## यूनियन: एक स्लॉट, कई टाइप

`union` के सभी मेंबर **एक ही मेमोरी साझा** करते हैं — इसका आकार सबसे बड़े मेंबर के बराबर होता है, और एक मेंबर लिखने से बाकी ओवरराइट हो जाते हैं। इसके विपरीत, स्ट्रक्चर हर मेंबर को अपनी जगह देता है।

## यूनियन काम में

सिर्फ सबसे हाल में लिखा गया मेंबर ही वैध मान रखता है।

```c
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` से शुरू होकर, जिससे कोड कच्चे नंबरों से ज़्यादा पठनीय बनता है।

```c
enum Day { MON, TUE, WED, THU, FRI, SAT, SUN };

enum Day today = WED;
printf("%d\n", today);  // 2
```

Output:

```
2
```
