परिचय
C में समान प्रकार के डेटा और विभिन्न प्रकार के डेटा दोनों के लिए कंटेनर हैं। समान प्रकार के डेटा के भंडारण के लिए C ऐरे की अवधारणा प्रदान करता है जो समान प्रकार के डेटा वेरिएबल्स को संग्रहीत करता है, जबकि विभिन्न प्रकार के डेटा को संग्रहीत करने के लिए C में स्ट्रक्चर और यूनियन की अवधारणा है जो विभिन्न प्रकार के डेटा वेरिएबल्स को भी स्टोर कर सकते हैं।
चूंकि स्ट्रक्चर और यूनियन दोनों विभिन्न प्रकार के डेटा को धारण कर सकते हैं, लेकिन आंतरिक कार्यान्वयन के आधार पर इन दोनों कंटेनरों में कई अंतर पाए जा सकते हैं।
महत्वपूर्ण अंतर
| क्र.सं. | मापदंड | स्ट्रक्चर | यूनियन |
|---|---|---|---|
| 1 | परिभाषा | स्ट्रक्चर C में विभिन्न प्रकार के डेटा वेरिएबल्स को स्टोर करने के लिए परिभाषित एक कंटेनर है और यूजर-डिफाइंड वेरिएबल्स के भंडारण का भी समर्थन करता है। | यूनियन C में एक समान प्रकार का कंटेनर है जो यूजर-डिफाइंड वेरिएबल्स के साथ विभिन्न प्रकार के वेरिएबल्स को भी धारण कर सकता है। |
| 2 | आंतरिक कार्यान्वयन | स्ट्रक्चर में प्रत्येक इनपुट मेंबर के लिए अलग मेमोरी लोकेशन आवंटित होती है। | यूनियन में सभी इनपुट वेरिएबल्स में से सबसे बड़े आकार वाले मेंबर के लिए ही मेमोरी आवंटित होती है और वही लोकेशन सभी मेंबर्स द्वारा साझा की जाती है। |
| 3 | सिंटैक्स (Syntax) | struct struct_name{
type element1;
type element2;
...
} variable1, variable2, ...; |
union u_name{
type element1;
type element2;
...
} variable1, variable2, ...; |
| 4 | आकार (Size) | स्ट्रक्चर में मेंबर्स के लिए साझा लोकेशन नहीं होती, इसलिए स्ट्रक्चर का आकार सभी डेटा मेंबर्स के आकार के योग के बराबर या उससे अधिक होता है। | यूनियन में प्रत्येक मेंबर के लिए अलग लोकेशन नहीं होती, इसलिए इसका आकार सभी डेटा मेंबर्स में से सबसे बड़े मेंबर के आकार के बराबर होता है। |
| 5 | मान संग्रहण (Value storage) | स्ट्रक्चर में प्रत्येक इनपुट डेटा मेंबर के लिए विशिष्ट मेमोरी लोकेशन होती है, इसलिए यह विभिन्न मेंबर्स के एकाधिक मान एक साथ स्टोर कर सकता है। | यूनियन में सभी इनपुट डेटा मेंबर्स के लिए केवल एक साझा मेमोरी आवंटन होता है, इसलिए यह एक समय में सभी मेंबर्स के लिए एक ही मान स्टोर करता है। |
| 6 | आरंभीकरण (Initialization) | स्ट्रक्चर में एकाधिक मेंबर्स को एक साथ इनिशियलाइज़ किया जा सकता है। | यूनियन में एक समय में केवल पहले मेंबर को इनिशियलाइज़ किया जा सकता है। |