# यूनियन्स और एनम्स — C Programming Fundamentals: Pointers, Memory और Files

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

> Unions से members के बीच memory साझा करें और enums से integer constants को नाम दें।

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

`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
```
