Artikel Terbaru

Unions

Introduction to C Unions


Introduction to C Unions 
C आपको एक विशेष data type provide करती है। इस data type को union कहते है। Unions के द्वारा आप एक ही memory location में कई प्रकार के data type store कर सकते है। आप unions के अंदर अलग अलग data type के कई variables create कर सकते है।



लेकिन एक समय में एक ही variable में value store की जा सकती है। Unions के द्वारा आप एक ही memory location को कई तरह से यूज़ कर सकते है।




लेकिन union के सभी members एक ही memory location को यूज़ करते है और उसकी size सबसे बड़ी size वाले member जितनी होती है।



Defining a Union 

Unions define करने के लिए आप union keyword यूज़ करते है। ये structure को define करने जैसा ही होता है। Unions का basic syntax इस प्रकार होता है। 

union union_name
{
    data_type var1;
    data_type var2;
    ..
    ..
    data_type varn;

}u1.u2,....un;
   
सबसे पहले आप union keyword और unique union name define करते है। इसके बाद आप curly brackets  में variables define करते है। इसके बाद ending curly brackets के बाद comma लगाकर union variables create करते है।

union input 
{
     int a;
     float b;
}in;

अब in variable जो की input type का है एक integer value store कर सकता है या फिर एक float value store कर सकता है। आप इसके दोनों variables में एक साथ value store नहीं कर सकते है। 

Accessing Union Member Variables 

Union members भी आप उस तरह ही access करते है जैसे structure members access किये जाते है। सबसे पहले आप union का नाम लिखते है। उसके बाद dot (.) operator लगाकर member का नाम लिखा जाता है।



आप union members को value इस प्रकार assign कर सकते है।



in.a = 10;


यदि आप किसी union member को print करना चाहते है तो ऐसा आप इस प्रकार कर सकते है।



printf("%d",in.a);


A Complete Example

यदि आप union के सभी members को एक साथ value assign करके एक साथ print करवाने के कोशिश करेंगे तो output invalid show होगा। जब आप एक के बाद किसी दूसरे variable को value assign करते है तो memory में value उसी की रहेगी।



आसान शब्दो में कहे तो जो member सबसे last में initialize किया जायेगा उसी की value memory में store होगी।   

#include <stdio.h>

union input
{
    int a;
   float b;
}in;

int main()
{
    
    in.a = 15;
    printf("Value of a is : %d\n",in.a);

    in.b = 20;
    printf("Value of b is : %f",in.b);



    return 0;

}

उपर दिए गए program में पहले a की value set की गयी है और उसे print किया गया है। इसके बाद b variable की value set की गयी है और उसे print किया गया है।



जैसा की मैने पहले आपको बताया था की जिस variable की value सबसे last में set की जाएगी उसी की value union variable में रहेगी।



इसलिए हर बार पहले value set की गयी है और दूसरे member की value set करने से पहले पुराने variable की value print की गयी है।



Value of a is :  15
Value of b is : 20.00000

Post a Comment

0 Comments