- Introduction to C unions in Hindi
- Defining C unions in Hindi
- Accessing members of C unions in Hindi
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 को कई तरह से यूज़ कर सकते है।
Unions c language में structures की तरह ही होते है। बस इनमें difference ये होता है की structure का हर member एक separate memory location occupy करता है और उन सब की sizes अलग अलग होती है।
लेकिन 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>
/* Declaring input union */
union input
{
int a;
float b;
}in; /* Union variable */
int main()
{
in.a = 15;
in.b = 20;
/* Will print a garbage value */
printf(“Value of a is : %dn”,in.a);
/* Will print 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 : 1101345
Value of b is : 20.00000
|
Next: Typedef keyword
कोई टिप्पणी नहीं:
एक टिप्पणी भेजें