संरचना आणि संघामधील फरक

Anonim

भिन्न आहेत. रचना आणि युनियन हे सी-भाषेमध्ये वापरकर्ता-परिभाषित डेटा प्रकार आहेत आणि ते संकल्पनात्मक समान आहेत, तथापि, काही प्रकारे त्यांचे सदस्य मेमरी कशा प्रकारे वाटप केले जातात ते वेगळे आहेत. ते त्याचप्रमाणे घोषित केले जातात परंतु ते वेगळ्या प्रकारे कार्य करतात. ते वापरकर्त्यास एकाच नावाखाली भिन्न डेटा प्रकार एकत्र करण्यास परवानगी देतात. स्ट्रक्चर व्हेरिएबल्स घोषित करताना प्रत्येक सदस्यासाठी स्वतंत्र मेमरी स्थान वापरल्यास, एक युनियन व्हेरिएबलचे वेगवेगळे सदस्य समान मेमरी लोकेशन शेअर करतात. संरचना आणि संघ यांच्यातील फरकाचा अभ्यास करू या.

संरचना म्हणजे काय?

एक रचना सी मध्ये फक्त दुसर्या वापरकर्त्याने परिभाषित डेटा प्रकार आहे जे वापरकर्त्यास वेगवेगळ्या प्रकारचे डेटा प्रकार मेमरीच्या एका ब्लॉकमध्ये एका प्रकारात एकत्र करण्यास परवानगी देतो. एक रचनामध्ये एकमेकांशी संबंधित साध्या आणि गुंतागुंतीच्या डेटा प्रकारांचा समावेश असू शकतो, जो अन्यथा, अर्थ लावू शकत नाही. एक स्ट्रक्चरमध्ये प्रत्येक सदस्य त्याच्या स्वत: च्या स्मृती स्थान प्राप्त करतो जेणेकरून ती कधीही वापरता आणि पुनर्प्राप्त करता येते.

जेव्हा बर्याच डेटाची गरज असते तेव्हा ग्रुपिंग सारखी एखादी निर्देशिका ज्यात पुस्तके किंवा अॅड्रेस बुकमधील बर्याच सदस्यांबद्दल माहिती असते ज्यात एकाच संपर्क - नाव, पत्ता, संपर्क क्रमांक, इत्यादी. प्रत्येक सदस्याचा पत्ता चढत्या क्रमाने असेल ज्याचा अर्थ प्रत्येक सदस्याची स्मृती वेगळ्या ऑफसेट मूल्यांवर सुरू होईल. एका सदस्याचे मूल्य बदलणे इतर सदस्यांवर कोणतेही परिणाम होणार नाही.

'स्ट्रक्चर' कीवर्डचा वापर एकाच नावाखाली विविध डेटा प्रकारांची रचना निश्चित करण्यासाठी होतो. उदाहरणार्थ, आपण एक कर्मचारी डेटाबेस तयार करू इच्छित असल्यास, आपण एका संस्थेच्या अंतर्गत कर्मचारी नाव, वय, फोन आणि वेतन तपशील संचयित करणे आवश्यक आहे. हे 'स्ट्रक्चर' या कीवर्डाने केले आहे, जे नंतर कंपाइलरला सांगते की एक रचना घोषित केली गेली आहे.

स्ट्रक्चर कर्मचारी {

स्ट्रिंगचे नाव;

स्ट्रिंग वय;

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

स्ट्रिंग पगार;

} emp1, emp2;

येथे, 'कर्मचारी' हे आकृत्याचे नाव आहे आणि 'वैमानिक' चे दोन घटक 'emp1' आणि 'emp2' अशा प्रकारचे 'कर्मचारी' च्या रूपात तयार केले आहे. क्लोजिंग ब्रेसेसला सेमीकोलन (;);

एका संरचनेचे सदस्य दोन प्रकारच्या ऑपरेटरद्वारे प्रवेश मिळवू शकतात:

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

संघ म्हणजे काय?

सी मध्ये वापरले जाणारे हे एक विशेष प्रकारचे प्रकार आहे जे वापरकर्त्यास एकाच मेमरी स्थानावर वेगवेगळ्या प्रकारचे डेटा प्रकार संचयित करण्याची परवानगी देतो. एक संघटन एखाद्या संरचनेसारखीच आहे आणि तो शब्द 'स्ट्रक्चर' हा शब्द 'युनियन' शी बदलून परिभाषित केला जाऊ शकतो. सदस्यांनी संघटनात एकमेकांची स्मरणशक्ती ओव्हरहेअर केली आहे आणि ती आपल्या सर्व सदस्यांसाठी फिट आहे.

जेव्हा वेरियबल युनियनशी संबंधित असते तेव्हा, कम्पाइलर मेमरीचे आकार लक्षात घेऊन मेमरीचे वाटप करते, त्यामुळे युनियनचे आकार सर्वात मोठे डेटा सदस्यांच्या आकाराचे आहे.एक संघ अनेक सदस्यांसह परिभाषित केला जाऊ शकतो, परंतु केवळ एकाच सदस्यामध्ये कोणत्याही दिलेल्या वेळेच्या वेळी मूल्य आहे. < एक संघाच्या सर्व सदस्यांसाठी पत्ता समान आहे म्हणजे प्रत्येक सदस्य एकाच ऑफसेट मूल्यापासून सुरू होतो. आणि एका सदस्याचे मूल्य बदलल्यास इतर सदस्यांच्या मूल्यांवर परिणाम होईल. जेव्हा आपण काही संचयित करू इच्छित असल्यास एक संघ वापरला जाऊ शकतो जो अनेक डेटा प्रकारांपैकी एक आहे.

संघ सेवक {

चार नाव [32];

तीव्र वय;

फ्लोट वेतन;

}; < येथे कीवर्ड 'युनियन' संघाची व्याख्या करते जे संरचना घोषित करण्यासारखे आहे. व्हेरिएबल्स एकतर एक स्ट्रिंग व्हॅल्यूज साठवू शकतात, जे 'कर्मचारी नाव', एक पूर्णांक मूल्य आहे 'कर्मचारीचे वय' किंवा फ्लोट जे 'कर्मचार्याच्या पगारा' चे प्रतिनिधित्व करते.

संरचना आणि केंद्रीय दरम्यान फरक < 1 कीवर्ड कीवर्ड स्ट्रक्चर ठरवण्यासाठी वापरले जाते तर 'युनियन' कीवर्ड युनीयन परिभाषित करण्यासाठी वापरला जातो.

2 मेमरी ऍलोकेशन

एका इमारतीतील सदस्यांसाठी वेगळे मेमरी स्पेस देण्यात आले आहे आणि सदस्यांना वेगवेगळ्या पत्ते आहेत जे स्मृती शेअर करत नाहीत. दुसरीकडे, एक संघ त्याच्या सर्व सदस्यांकरिता समान मेमरी जागा शेअर करतो म्हणून सामायिक मेमरी स्थान वाटप केले जाते.

3 सदस्याचा प्रवेश

एक युनियन एकावेळी एकाच सदस्यास प्रवेश मिळविण्यासाठी आपल्या सर्व सदस्यांसाठी एकाच वेळी एकच मूल्य संग्रहित करते. एकापेक्षा जास्त मूल्ये संरचनेमध्ये संग्रहित केली जाऊ शकतात, त्यामुळे कोणत्याही सदस्य मूल्य प्रवेश आणि कोणत्याही वेळी प्राप्त केला जाऊ शकतो.

4 आकार < संरचनेचे आकार सर्व सदस्यांची किंवा त्यापेक्षा अधिक संख्येच्या बेरजेइतके असते, तर युनियनचे आकार मोठे आकाराच्या सदस्यांच्या आकाराच्या बरोबरीचे असतात.

5 प्रारंभ < एका संरचनेत एकाच वेळी अनेक सदस्यांची आरंभी केली जाऊ शकते, जेव्हा एक संघामध्ये फक्त पहिल्या सदस्यास त्याच्या प्रकारचे मूल्य सह आरंभ केला जाऊ शकतो.

5 मूल्य

एक रचना सर्व सदस्यांचे विविध मूल्ये संचित करू शकते आणि एका सदस्याच्या मूल्यामध्ये बदल इतर सदस्यांच्या मूल्यांवर कोणताही परिणाम होणार नाही. युनियन त्याच्या सर्व सदस्यांसाठी समान मूल्य मानतो आणि एका सदस्याचे मूल्य बदलल्याने इतरांच्या मूल्यावर परिणाम होईल.

संरचना वि. युनियन

संरचना

संघटन < स्ट्रक्चर कीवर्डचा वापर संरचना संरचनेसाठी केला जातो.

युनियन परिभाषित करण्यासाठी केंद्रीय कीवर्डचा वापर केला जातो.

सदस्यांनी मेमरी स्ट्रक्चरमध्ये सामायिक केली नाही.

सदस्य युनियनमधील मेमरी स्पेस शेअर करतात.

कोणत्याही सदस्याला एखाद्या संरचनेत कोणत्याही वेळी पुनर्प्राप्त करता येईल.

एका युनियन मध्ये एका वेळी फक्त एकच सदस्य ऍक्सेस करता येतो. एका संरचनेतील बर्याच सदस्य एकाच वेळी आरंभ होऊ शकतात.
फक्त प्रथम सदस्य आरंभ केला जाऊ शकतो. संरचनेचे आकार प्रत्येक सदस्याच्या आकाराच्या बेरजेइतके आहे. < संघाचा आकार हा सर्वात मोठा सदस्यांच्या आकारासारखा असतो
एका सदस्याचे मूल्य बदलणे दुसर्याच्या मूल्यावर परिणाम करणार नाही. एका सदस्याच्या मूल्यात बदल केल्यास इतर सदस्य मूल्यांवर परिणाम होईल.
सर्व सदस्यांसाठी विविध मूल्य स्टोअर करा. सर्व सदस्यांसाठी समान मूल्य साठवा.
सारांश दोन्ही रचना आणि संघ हे वापरकर्ता-परिभाषित डेटा प्रकार आहेत जे कार्यात्मक आहेत आणि संकल्पनात्मक समान आहेत तरी काही प्रकारे ते भिन्न आहेत.
दोन्ही वेगवेगळ्या डेटा प्रकारांचे व्हेरिएबल्स असतात परंतु ते व्हेरिएबल्सची घोषणा करण्यासाठी आणि सदस्य ऍक्सेस करण्यासाठी समान सिन्टॅक्स वापरतात. रचना 'स्ट्रक्चर' कीवर्डद्वारे परिभाषित केली जात असताना, युनियन म्हणजे 'युनियन' कीवर्ड द्वारे परिभाषित केले जाते प्रत्येक सदस्याला स्ट्रक्चरमध्ये वेगळे मेमरी स्थान मिळते, तर युनियनमध्ये, एकूण मेमरी स्पेस सर्वात मोठ्या आकाराच्या सदस्याशी समतुल्य असतो. सर्व सदस्यांनी युनियनमधील समान मेमरी स्पेस शेअर केले आहे.
कोणत्याही श्रेणीतील कोणत्याही सदस्यास संरचना मध्ये प्रवेश करता येऊ शकतो, तर युनियन मध्ये, फक्त त्या वेरियेबलची किंमत ज्यामध्ये अलीकडेच संचयित केली जाते. <