एक संघ एक स्मृति स्थान है जिसे सी प्रोग्रामिंग भाषा में विभिन्न डेटा प्रकारों के कई चर द्वारा साझा किया जाता है।
सिंटैक्स
संरचना के संघ के लिए वाक्य रचना इस प्रकार है -
union uniontag{ datatype member 1; datatype member 2; ---- ---- datatype member n; };
उदाहरण
निम्नलिखित उदाहरण संरचना के संघ के उपयोग को दर्शाता है -
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; } main ( ){ union sample s = {10, 20.5, "A"}; printf("a=%d",s.a); printf("b=%f",s.b); printf("c=%c",s.c); }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
a = garbage value b = garbage value c = A
संरचनाओं का संघ
-
एक संरचना को संघ के अंदर घोंसला बनाया जा सकता है और इसे संरचनाओं का संघ कहा जाता है।
-
एक संरचना के अंदर एक संघ बनाना संभव है।
नमूना कार्यक्रम 2
एक अन्य सी प्रोग्राम जो संरचना के संघ के उपयोग को दर्शाता है, नीचे दिया गया है -
struct x{ int a; float b; }; union z{ struct x s; }; 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); }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
a= 10 b = 30.5