संरचना और संघ के बीच अंतर

Anonim

दोनों संरचना और संघ सी भाषा में उपयोगकर्ता परिभाषित डेटा प्रकार हैं और ये संकल्पनात्मक रूप से समान हैं, हालांकि, वे कुछ तरीकों से अलग हैं जैसे कि उनके सदस्यों को स्मृति आवंटित की जाती है। उन्हें समान रूप से घोषित किया जाता है लेकिन वे अलग तरीके से काम करते हैं। वे उपयोगकर्ता को एक नाम के तहत विभिन्न डेटा प्रकारों को संयोजित करने की अनुमति देते हैं। जबकि अलग-अलग मेमोरी स्थान का इस्तेमाल प्रत्येक सदस्य के लिए किया जाता है जब संरचना चर की घोषणा करते हैं, तो यूनियन वैलिएबल के अलग-अलग सदस्य समान स्मृति स्थान को साझा करते हैं। आइए संरचना और संघ के बीच के अंतर का अध्ययन विस्तार है।

संरचना क्या है?

एक संरचना सी में सिर्फ एक अन्य यूज़र-डिफ़ाइंड डेटा प्रकार है जो उपयोगकर्ता को स्मृति के एक ब्लॉक में एक प्रकार के विभिन्न प्रकारों के डेटा प्रकार को गठजोड़ करने की अनुमति देता है। एक संरचना में एक दूसरे से संबंधित दोनों सरल और जटिल डेटा प्रकार हो सकते हैं, जो अन्यथा, अर्थ नहीं बनायेगा। संरचना के भीतर प्रत्येक सदस्य अपनी स्मृति स्थान प्राप्त करता है ताकि इसे किसी भी समय पहुँचा जा सके और पुनर्प्राप्त किया जा सके।

एक ढांचे का प्रयोग तब किया जाता है जब बहुत सारे डेटा को एक निर्देशिका की तरह समूहीकृत करना जरूरी होता है जो एक किताब या एक पता पुस्तिका में कई सदस्यों के बारे में जानकारी संग्रहीत करता है जो एक संपर्क के बारे में सारी जानकारी संग्रहीत करता है - नाम, पता, संपर्क नंबर, और इतने पर। प्रत्येक सदस्य का पता आरोही क्रम में होगा जिसका अर्थ है प्रत्येक सदस्य की स्मृति अलग ऑफसेट मूल्यों पर शुरू होगी। किसी सदस्य के मूल्य को बदलने से दूसरे सदस्यों पर कोई प्रभाव नहीं होगा।

-3 ->

ए 'स्ट्रक्चर' कीवर्ड का प्रयोग एक ही नाम के तहत विभिन्न डेटा प्रकारों की संरचना को परिभाषित करने के लिए किया जाता है। उदाहरण के लिए, यदि आप एक कर्मचारी डेटाबेस बनाना चाहते हैं, तो आपको एक इकाई के तहत कर्मचारी का नाम, आयु, फोन और वेतन विवरण संग्रहित करने की आवश्यकता होगी। यह 'स्ट्रेट' कीवर्ड द्वारा किया जाता है, जो फिर कंपाइलर को बताता है कि एक संरचना घोषित की गई है।

संरचना कर्मचारी {

स्ट्रिंग का नाम;

स्ट्रिंग युग;

स्ट्रिंग फोन;

स्ट्रिंग वेतन;

} emp1, emp2;

यहां, 'कर्मचारी' संरचना का नाम है और दो चर 'emp1' और 'emp2' प्रकार 'कर्मचारी' के रूप में बनाए गए हैं समापन ब्रेसिज़ का अर्धविराम (;) के बाद होना चाहिए

एक संरचना के सदस्य दो प्रकार के ऑपरेटर द्वारा उपयोग किया जा सकता है:

  1. सदस्य ऑपरेटर
  2. संरचना सूचक ऑपरेटर

संघ क्या है?

यह सी में इस्तेमाल किया जाने वाला विशेष डेटा प्रकार है जो उपयोगकर्ता को एक ही मेमोरी स्थान में विभिन्न प्रकार के डेटा प्रकार संग्रहीत करने की अनुमति देता है। एक संघ एक संरचना के बराबर होता है और इसे कीवर्ड 'स्ट्रक्चर' की जगह खोजशब्द 'यूनियन' के स्थान से परिभाषित किया जा सकता है सदस्यों में एक दूसरे की स्मृति को एक संघ में याद किया जाता है और यह अपने सभी सदस्यों को फिट करने के लिए काफी बड़ा है।

जब एक चर संघ के साथ जुड़ा हुआ है, तो संकलक सबसे बड़ी स्मृति के आकार पर विचार करके स्मृति को आवंटित करता है, इसलिए एक संघ का आकार सबसे बड़ा डेटा सदस्य के आकार के बराबर है।एक संघ कई सदस्यों के साथ परिभाषित किया जा सकता है, लेकिन केवल एक सदस्य समय के किसी भी उदाहरण पर मान शामिल करता है।

यह पता एक संघ के सभी सदस्यों के लिए समान है जिसका मतलब है कि प्रत्येक सदस्य एक ही ऑफ़सेट मूल्य पर शुरू होता है। और एक सदस्य के मूल्य में परिवर्तन अन्य सदस्यों के मूल्यों को प्रभावित करेगा। एक संघ का उपयोग तब किया जा सकता है जब आप कुछ स्टोर करना चाहते हैं जो कि कई डेटा प्रकारों में से एक है

संघ कर्मचारी {

चार नाम [32];

तीव्र आयु;

वेतन वेतन;

};

यहां कीवर्ड 'संघ' संघ को परिभाषित करता है जो संरचना की घोषणा के समान है। वेरिएबल या तो एक स्ट्रिंग मान स्टोर कर सकते हैं जो 'कर्मचारी का नाम' है, एक पूर्णांक मान है जो 'कर्मचारी की उम्र' है, या एक फ्लोट जो 'कर्मचारी के वेतन' का प्रतिनिधित्व करता है।

संरचना और संघ के बीच का अंतर

1 कुंजीशब्द

कीवर्ड 'स्ट्रक्चर' का उपयोग एक संरचना को परिभाषित करने के लिए किया जाता है जबकि यूनियन को परिभाषित करने के लिए 'यूनियन' कीवर्ड का उपयोग किया जाता है।

2। मेमोरी आवंटन

एक संरचना के भीतर सदस्यों के लिए अलग मेमोरी स्पेस आवंटित किया गया है और सदस्यों के पास अलग-अलग पते हैं जो स्मृति साझा नहीं करते हैं दूसरी ओर, एक संघ, अपने सभी सदस्यों के लिए समान स्मृति स्थान साझा करता है ताकि साझा स्मृति स्थान आवंटित किया गया हो।

3। सदस्य पहुंच

एक संघ एक समय में एक ही स्थान को केवल एक ही सदस्य के लिए पहुंच बनाने वाले सभी सदस्यों के लिए एक मान को स्टोर करता है। जबकि कई मान संरचना में संग्रहीत किए जा सकते हैं, इसलिए किसी भी सदस्य मूल्य को किसी भी समय एक्सेस और पुनः प्राप्त किया जा सकता है।

4। आकार

एक संरचना का आकार सभी सदस्यों या उससे अधिक के आकार के बराबर है, जबकि एक यूनियन का आकार सबसे बड़े आकार के सदस्य के आकार के बराबर है।

5। प्रारंभ

एक संरचना में, कई सदस्यों को एक बार आरंभ किया जा सकता है, जबकि एक संघ में, केवल पहला सदस्य अपने प्रकार के मूल्य के साथ आरंभ किया जा सकता है

5। मूल्य

एक संरचना सभी सदस्यों के विभिन्न मूल्यों को स्टोर कर सकती है और एक सदस्य के मूल्य में परिवर्तन दूसरे सदस्यों के मूल्यों पर कोई असर नहीं होगा। जबकि एक संघ अपने सभी सदस्यों के लिए समान मूल्य का भंडार करता है और एक सदस्य के मूल्य में परिवर्तन दूसरे के मूल्य को प्रभावित करेगा

संरचना बनाम संघ

संरचना संघ
स्ट्रक्चर कीवर्ड का उपयोग संरचना को परिभाषित करने के लिए किया जाता है यूनियन को परिभाषित करने के लिए यूनियन कीवर्ड का उपयोग किया जाता है
सदस्य किसी संरचना में स्मृति साझा नहीं करते हैं। सदस्य एक यूनियन में मेमोरी स्पेस साझा करते हैं।
किसी भी सदस्य को एक संरचना में किसी भी समय पुनः प्राप्त किया जा सकता है। संघ में केवल एक सदस्य को एक बार में पहुंचा जा सकता है
एक संरचना के कई सदस्यों को एक बार में आरंभ किया जा सकता है केवल प्रथम सदस्य को आरंभ किया जा सकता है
संरचना का आकार प्रत्येक सदस्य के आकार के बराबर है संघ का आकार सबसे बड़ा सदस्य के आकार के बराबर है
एक सदस्य के मूल्य में परिवर्तन दूसरे के मूल्य को प्रभावित नहीं करेगा। एक सदस्य के मूल्य में परिवर्तन अन्य सदस्य मूल्यों को प्रभावित करेगा।
सभी सदस्यों के लिए अलग-अलग मान स्टोर करें सभी सदस्यों के लिए स्टोर एक ही मूल्य।

सारांश

  • दोनों संरचना और संघ सी में उपयोगकर्ता परिभाषित डेटा प्रकार हैं जो कार्यात्मक रूप से और अवधारणात्मक रूप से समान हैं लेकिन कुछ मायनों में काफी अलग हैं।
  • दोनों में अलग-अलग डेटा प्रकारों के वेरिएबल होते हैं, लेकिन वे वेरिएबल्स की घोषणा और सदस्य तक पहुंचने के लिए एक ही वाक्यविन्यास का उपयोग करते हैं। जबकि संरचना 'स्ट्रक्चर' कीवर्ड द्वारा परिभाषित की जाती है, एक संघ कीवर्ड 'यूनियन' द्वारा परिभाषित होता है
  • प्रत्येक सदस्य को एक संरचना में अलग स्मृति स्थान प्राप्त होता है, जबकि एक संघ में, कुल स्मृति स्थान सबसे बड़ा आकार के सदस्य के बराबर है। सभी सदस्य एक ही मेमोरी स्पेस को यूनियन में बांट देते हैं।
  • किसी भी क्रम में किसी भी सदस्य को एक संरचना में पहुंचाया जा सकता है, जबकि एक संघ में, केवल उस चर को उस मूल्य तक पहुंचाया जा सकता है जो हाल ही में संग्रहीत है।