C प्रोग्रामिंग भाषा में यूनियन एक मेमोरी लोकेशन है जिसे अलग-अलग डेटा टाइप्स के कई वेरिएबल्स द्वारा साझा किया जाता है।
सिंटैक्स
स्ट्रक्चर के यूनियन का सिंटैक्स निम्नलिखित है:
union uniontag {
datatype member1;
datatype member2;
// ...
datatype memberN;
};
उदाहरण
निम्नलिखित उदाहरण स्ट्रक्चर के यूनियन के उपयोग को दर्शाता है:
union sample {
int a;
float b;
char c;
};
यूनियन वेरिएबल की घोषणा
यूनियन वेरिएबल की घोषणा तीन प्रकार से की जा सकती है:
प्रकार 1
union sample {
int a;
float b;
char c;
} s;
प्रकार 2
union {
int a;
float b;
char c;
} s;
प्रकार 3
union sample {
int a;
float b;
char c;
};
union sample s;
जब यूनियन घोषित किया जाता है, तो कंपाइलर स्वचालित रूप से यूनियन में वेरिएबल्स को रखने के लिए सबसे बड़े आकार का वेरिएबल टाइप बनाता है।
किसी भी समय, केवल एक वेरिएबल को संदर्भित किया जा सकता है।
आरंभीकरण और एक्सेस करना
यूनियन मेंबर को एक्सेस करने के लिए स्ट्रक्चर के समान सिंटैक्स का उपयोग किया जाता है।
मेंबर्स को एक्सेस करने के लिए डॉट ऑपरेटर (.) का उपयोग किया जाता है।
पॉइंटर का उपयोग करके मेंबर्स को एक्सेस करने के लिए एरो ऑपरेटर (->) का उपयोग किया जाता है।
नमूना प्रोग्राम 1
निम्नलिखित प्रोग्राम स्ट्रक्चर के यूनियन के उपयोग को दर्शाता है:
union sample {
int a;
float b;
char c;
};
int main() {
union sample s = {10, 20.5, "A"};
printf("a=%d", s.a);
printf("b=%f", s.b);
printf("c=%c", s.c);
return 0;
}
आउटपुट
उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:
a = गार्बेज वैल्यू b = गार्बेज वैल्यू c = A
स्ट्रक्चर्स का यूनियन
एक स्ट्रक्चर को यूनियन के अंदर नेस्ट किया जा सकता है और इसे स्ट्रक्चर्स का यूनियन कहा जाता है।
एक स्ट्रक्चर के अंदर यूनियन बनाना संभव है।
नमूना प्रोग्राम 2
एक और C प्रोग्राम जो स्ट्रक्चर के यूनियन के उपयोग को दर्शाता है:
struct x {
int a;
float b;
};
union z {
struct x s;
};
int main() {
union z u;
u.s.a = 10;
u.s.b = 30.5;
printf("a=%d", u.s.a);
printf("b=%f", u.s.b);
return 0;
}
आउटपुट
उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:
a= 10 b = 30.5