Union in C | Derivate Data Type | Hindi

What is Union in C?

C Union एक Derivate Data Type हैं जो की Basic Data Type की सहायता से हम बना सकते हैं। इसमें हम एक से अधिक Data Type Declare कर सकते हैं किन्तु एक समय में एक ही उपयोग कर सकते हैं यह Structure जैसा ही होता हैं इसमें जब हम अलग अलग तरह के Data Type Define करते हैं तो यह जिसकी Size ज्यादा हैं बस उतनी ही Size Occupied करता है यानि की Maximum Data Type Width ही यह Occupied करता हैं ।

यदि आपने C Structure के बारे में Read किया हैं तो Syntax Level पर बिलकुल Struct जैसा ही हैं केवल यूनियन के Concept Struct से अलग हैं ।


How To Union Declaration in C

Union को Declare करने के लये हमें union keyword के बाद Identifier (जिस नाम से भी आप Union बनाना चाहते हैं ) लिखना होता हैं उसके बाद कर्ली ब्रैकेट में आप जितने भी चाहे Data Type Declare कर सकते हैं। आइये इस उदाहरण से समझते हैं।


union Student
{
    int  sch_no;
    char section;  
    int  cls;  
} typedef stud ;

How to Initialize Union in C

जब भी हम कोई Variable Declare करे तो first Time जो value सेट की जाती हैं उसे ही Initialization कहते है , हम एक समय में एक ही वैल्यू Initialize कर सकते हैं , जैसे हमने निम्न उदाहरण में एक साथ तीन वैल्यू Initialize की हैं लेकिन हमने जो अंत में लिखी हैं वही वैल्यू स्टोर होगी।

 stud s1; 

 s1.sch_no  = 2;
 s1.section = 'B';
 s1.cls     = 5;

Union Example

इस Example में हमें एक Program बनाया हैं जिसमे हमने Union Declaration, Initialization, Get Value From Union तक सभी Topic Cover किये हैं

#include <stdio.h>

union Student
{
    int  sch_no;
    char section;  
    int  cls;  
} typedef stud ;

void main()
{
    stud s1; 

    //1
    s1.sch_no  = 2;
    s1.section = 'B';
    s1.cls     = 5;
   
    // Value Replaced by s1.cls
    printf("Value of s1.scho_no is :%d\n", s1.sch_no);  

    // Value Replaced by s1.cls
    printf("Value of s1.section is :%c\n", s1.section); 
    printf("Value of s1.cls     is :%d\n", s1.cls);     

    //2
    printf("\n"); 
    s1.sch_no  = 2;
    printf("Value of s1.scho_no is :%d\n", s1.sch_no);  

    s1.section = 'B';
    printf("Value of s1.section is :%c\n", s1.section); 

    s1.cls     = 5;
    printf("Value of s1.cls     is :%d\n", s1.cls);     
   
    // Max Size is 4 Byte   
    printf("\nSize of Union is : %d", sizeof(s1));    
 

}
  

C Union Output

Value of s1.scho_no is :5
Value of s1.section is :♣
Value of s1.cls     is :5

Value of s1.scho_no is :2
Value of s1.section is :B
Value of s1.cls     is :5

Size of Union is : 4
  • यहाँ पर जब हमने एक साथ तीनो Variable में Value सेट की और बाद में जब सभी को Print किया तो केवल Last वाली Value ही सभी में प्रिंट हुई , इसलिए Union में एक समय में हम केवल कोई एक वैल्यू का ही उपयोग कर सकते है ।
  • जब हमने बाद में एक एक कर वैल्यू Set की और उन्हें Hand to Hand ही प्रिंट किया तो Value सही प्रिंट हुई ।
  • अंत में हमने sizeof का उपयोग कर Data Type की Size भी Check की और Size 4 Byte आई यानि की जिस भी Variable ने max Size Occupied की वही इसकी Size होती हैं ।

Array of Union

जब हमें एक से अधिक एक जैसे Data Type की Value को Store करना होता हैं तो हम Array का उपयोग करते हैं, अभी हमारे पास Union एक तरह का Data Type हैं और हमें एक से अधिक Union Data Type की Value को स्टोर करना हैं इसलिए हमें Union का Array बना देंगे आइये इस Example समझते हैं

//Array of Union
printf("\nExample of Array Union \n");    
stud u[2]; 
u[0].sch_no = 9; 
printf("Value of u.sch_no     is :%d\n", u[0].sch_no);    

Example of Array Union
Value of u.sch_no     is :9

Pointer to an Union

जैसा की हम जानते है की Pointer किसी भी Variable की Value को Store न करते हुए Variable के Address को store करता हैं जब हमें किसी Union के Address को Pointer के द्वारा Access करना हो तब हम Pointer to an Union का उपयोग करते हैं ।यहाँ पर हमने Pointer to Union का Example दिया हैं

//Pointer to Union
printf("\nExample of Pointer Union \n");    
stud *p; 
p = &s1;
printf("Value of p->sch_no     is :%d\n", p->sch_no);   

Example of Pointer Union 
Value of p->sch_no     is :5

Union v/s Structure in C

Difference Between Union and Structure

Union or Structure में जो Basic Difference यह हैं की Union के अंदर जो हमें Data Type का उपयोग करते हैं उनमे से एक समय में हम केवल एक ही का उपयोग कर सकते है, जबकि Structure में हम एक साथ सभी Data Type का उपयोग कर सकते थे।

एक बार में एक ही Variable का उपयोग होने से यह Memory में जो Max Size का variable होता हैं उतनी ही Size लेता हैं जबकि Structure में सभी Data Type की Size का Sum Memory में Occupied किया जाता हैं।


Union in C in hindi with the help of Video

इस वीडियो में बहुत ही सरल भाषा में Union को समझाने की कोशिश की गई हैं।


आशा हैं मुझे की आपको Union के बारे में सभी जानकारी समझ में आ गई होगी। यदि उपरोक्त किसी भी पॉइंट में कोई भी Doubt हो तो आप मुझे Comment कर सकते हैं।

अपना कीमती समय देने के लिए धन्यवाद।

8 Comments

Add a Comment

Your email address will not be published. Required fields are marked *