Union in c hindi
यूनियन C प्रोग्रामिंग में एक यूजर डिफाइन डेटा टाइप मेंबर है. जो विशेष तोर पर एक ही मेमोरी स्टोरेज लोकेशन में विभिन्न डेटा टाइप्स प्रोग्राम वेरिएबल्स एलिमेंट्स को स्टोर करती है। यूनियन में सी स्ट्रक्चर जहाँ प्रत्येक स्ट्रक्चर मेंबर्स का अपना इंडिविजुअल मेमोरी स्टोरेज लोकेशन होता है. वही यूनियन डाटा टाइप के सभी वेरिएबल मेंबर्स एक ही मेमोरी स्टोरेज स्पेस लोकेशन को उपयोग करते हैं। जिससे कि यूनियन डाटा टाइप में स्टोरेज डाटा टाइप एलिमेंट्स के एक मेंबर को मॉडिफाई करते समय अन्य मौजूदा यूनियन मेंबर्स डिफ़ॉल्ट वैल्यूज एफेक्ट हो सकते हैं।
Union Data Type Declaration in C.
जैसे आपने struct कीवर्ड का उपयोग कर के स्ट्रक्चर मेंबर को डिक्लेअर किया है. उसी तरह C प्रोग्रामिंग में यूनियन डाटा टाइप्स मेंबर्स वेरिएबल को यूनियन कीवर्ड का उपयोग करके डिक्लेअर कर सकते है, ठीक उसी तरह जैसे आपने सी में स्ट्रक्चर डाटा टाइप मेंबर्स को डिक्लेअर किया है. याद रखे यूनियन डाटा टाइप मेंबर्स डिक्लेरेशन के लिए आपको यूनियन कीवर्ड के साथ साथ डिजायर यूनियन प्रोग्राम मेंबर को भी डिक्लेअर करना होगा।
#include <stdio.h> // standard input output header file
// Define a union named course
union course {
char cname[50];
int duration;
float fee;
};
In the above union program example.
जहा एक कोर्स यूनियन नाम से एक यूनियन डाटा टाइप मेंबर्स को डिक्लेअर किया गया है।
जहा कोर्स यूनियन डेटा में तीन डिफ़ॉल्ट मेंबर्स हैं. जिसमे duration (इन्टिजर), fee (फ्लोट), और cname एक 50 करैक्टर का ऐरे वेरिएबल है।
यहाँ कोर्स नाम से डिक्लेअर यूनियन के सभी तीनो मेंबर्स एक ही मेमोरी स्पेस स्टोरेज लोकेशन को शेयर करते हैं. तो यदि आप किसी एक यूनियन मेंबर्स में कोई मॉडिफिकेशन करने से अन्य यूनियन मेंबर्स डिफ़ॉल्ट स्टोरेज वैल्यूज इम्पैक्ट हो सकते हैं।
Accessing members in C union program.
आप स्ट्रक्चर की तरह डॉट (.) ऑपरेटर का उपयोग करके सी प्रोग्राम में डिक्लेअर यूनियन मेंबर्स एलिमेंट्स को एक्सेस कर सकते है, यदि आपने सी प्रोग्राम में स्ट्रक्चर डॉट ऑपरेटर का सही से उपयोग किया होतो। यूनियन भी उसी प्रकार डॉट ऑपरेटर से यूनियन मेंबर्स को एक्सेस किया जाता है.
int main() {
union course course;
course.duration = 10;
printf(“\n The course.duration is – %d”, course.duration);
course.fee = 799.89;
printf(“\n The course.fee is – %.f”, course.fee);
strcpy(course.cname, “c programming”);
printf(“\n the course.name is – %s”, course.cname);
printf(“\n lets checkout size of union Data is – %lu bytes”, sizeof(course));
return 0;
}
In the above union program example.
यहाँ हमने सी प्रोग्राम में एक union कोर्स नाम से एक कोर्स यूनियन डाटा टाइप डिक्लेअर किया है।
जहा हम यूनियन डाटा टाइप के अलग अलग मेंबर्स (duration, fee, cname) यूनियन डाटा टाइप मेंबर्स को यूनिक वैल्यूज प्रोवाइड करते हैं।
जहा मैन्युअल कोर्स यूनियन में course.fee और course.cname सेट करने के बाद course.duration यूनियन डाटा टाइप मेंबर इनफार्मेशन डिस्प्ले है. यदि आप किसी एक यूनियन मेंबर्स को मॉडिफाई करने से अन्य यूनियन मेंबर प्रभावित होते हैं।
Size of union in C.
सी प्रोग्राम में यूनियन डाटा टाइप का आकार उसके सबसे बड़े यूनियन मेंबर्स के आकार से अनुसार तय होता है। यहाँ ऊपर दिए गए यूनियन प्रोग्राम उदाहरण में, cname 50 करैक्टर की एक ऐरे एलिमेंट है. तो यहाँ यूनियन डेटा टाइप का आकार 50 बाइट्स (50 * sizeof(char)) स्टोरेज डिक्लेअर है।
Uses of union data types in C program.
Union memory management – सी प्रोग्राम में यूनियनों का उपयोग तब करें जब आपको मेमोरी-कुशल तरीके से विभिन्न प्रकार के प्रोग्राम डेटा को संग्रहीत करने की आवश्यकता हो, जब एक समय में केवल एक सदस्य का उपयोग किया जाता है।
Data type conversion – यूनियनों डाटा टाइप का उपयोग टाइप के लिए किया जा सकता है, जहाँ आप मेमोरी में समान बिट्स को विभिन्न डेटा टाइप के रूप में एक्स्प्लोर करते हैं।
Different data type handling – सी प्रोग्राम में यूनियनों डाटा टाइप का उपयोग वैरिएंट रिकॉर्ड का अनुकरण करने के लिए किया जा सकता है. जहाँ एक सी प्रोग्राम स्ट्रक्चर में अलग-अलग समय पर कई अलग-अलग प्रकार के डेटा में से एक को रख और प्रोसेस कर सकती है।
Some facts about union data types.
Unions data security – यूनियन सी प्रोग्राम में स्ट्रक्चर की तरह डाटा टाइप सिक्योरिटी प्रदान नहीं करते हैं। यूनियन में डिक्लेअर गलत डाटा टाइप मेंबर्स तक पहुँचने (जैसे, course.cname में लिखने के बाद course.fee पढ़ना) व्यवहार या गलत रिजल्ट प्रदान कर सकता है।
Union Management – सी प्रोग्राम में यूनियनों डाटा टाइप का उपयोग ध्यान पूर्वक करें, क्योंकि यह स्ट्रक्चर डाटा टाइप की तुलना में उन्हें डीबग करना और बनाए रखना अधिक कठिन होता है, जब सी प्रोग्राम में स्ट्रक्चर मेंबर्स का लगातार उपयोग नहीं किया जाता है।
यूनियन डाटा टाइप का उपयोग C प्रोग्रामिंग में डेटा रिप्रजेंटेशन और मेमोरी यूज़ में अधिक लचीलापन प्रदान करते हैं. लेकिन डेटा इंटीग्रिटी सुनिश्चित करने और विभिन्न प्रकारों के बीच डाटा मेमोरी को साझा करने के अनपेक्षित रिजल्ट से बचने के लिए उन्हें केयरफुल्ली ऑपरेट करने की जरूरत होती है।