कम्पोजिट डाटा टाइप

कंप्यूटर विज्ञान में, एक समग्र डेटा प्रकार या यौगिक डेटा प्रकार कोई भी डेटा प्रकार होता है जिसे प्रोग्रामिंग भाषा के आदिम डेटा प्रकारों और अन्य मिश्रित प्रकारों का उपयोग करके एक प्रोग्राम में बनाया जा सकता है। इसे कभी-कभी संरचना या समग्र डेटा प्रकार कहा जाता है, हालाँकि बाद वाला शब्द ऐरे डेटा प्रकार, सूची (सार डेटा प्रकार), आदि को भी संदर्भित कर सकता है। एक समग्र प्रकार के निर्माण के कार्य को वस्तु संरचना के रूप में जाना जाता है। समग्र डेटा प्रकार अक्सर स्केलर चर (कंप्यूटर विज्ञान) के विपरीत होते हैं।

सी/सी ++ संरचनाएं और कक्षाएं
एक संरचना सी और सी ++ की समग्र प्रकार की धारणा है, एक डेटाटाइप जो लेबल किए गए फ़ील्ड या सदस्यों के एक निश्चित सेट को बनाता है। इसे इसलिए कहा जाता है क्योंकि उन्हें घोषित करने में उपयोग किए जाने वाले स्ट्रक्चर कीवर्ड, जो संरचना के लिए छोटा है या अधिक सटीक रूप से, उपयोगकर्ता-परिभाषित डेटा संरचना है। [उद्धरण वांछित]

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

घोषणा
ए  घोषणा में फ़ील्ड की एक सूची होती है, जिनमें से प्रत्येक का कोई भी प्रकार हो सकता है। ए के लिए आवश्यक कुल भंडारण   वस्तु सभी क्षेत्रों की भंडारण आवश्यकताओं का योग है, साथ ही कोई भी आंतरिक डेटा संरचना संरेखण # डेटा संरचना पैडिंग।

उदाहरण के लिए:<वाक्यविन्यास प्रकाश लैंग = सी>संरचना खाता int aसी सी ount_number; चार * पहला_नाम; चार * अंतिम_नाम; फ्लोट बैलेंस; वाक्यविन्यास हाइलाइट

एक प्रकार को परिभाषित करता है, संदर्भित के रूप में. इस प्रकार का नया वेरिएबल बनाने के लिए हम लिख सकते हैं जिसमें एक पूर्णांक घटक है, जिसके द्वारा एक्सेस किया गया है, और एक फ़्लोटिंग-पॉइंट घटक, द्वारा एक्सेस किया गया  , इसके साथ ही   और   अवयव। ढांचा   सभी चार मान शामिल हैं, और सभी चार क्षेत्रों को स्वतंत्र रूप से बदला जा सकता है।

लिखने के बाद से  बार-बार कोड बोझिल हो जाता है, यह देखना असामान्य नहीं है   के लिए अधिक सुविधाजनक पर्यायवाची प्रदान करने के लिए सी  कोड में कथन. हालाँकि, कुछ प्रोग्रामिंग स्टाइल गाइड इसके खिलाफ सलाह देते हैं, यह दावा करते हुए कि यह प्रकार को अस्पष्ट कर सकता है।

उदाहरण के लिए:वाक्यविन्यास प्रकाश लैंग = सी>टाइपपीफ संरचना खाता int aसी सी ount_number; चार * पहला_नाम; चार * अंतिम_नाम; फ्लोट बैलेंस; वाक्यविन्यास हाइलाइट

सी ++ कोड में, टाइपपीफ | की आवश्यकता नहीं है क्योंकि प्रकार का उपयोग करके परिभाषित किया गया है  पहले से ही नियमित नाम स्थान का हिस्सा हैं, इसलिए प्रकार को या तो कहा जा सकता है   या केवल.

एक अन्य उदाहरण के रूप में, एक त्रि-आयामी वेक्टर समग्र प्रकार जो फ़्लोटिंग पॉइंट डेटा प्रकार का उपयोग करता है, इसके साथ बनाया जा सकता है:<वाक्यविन्यास प्रकाश लैंग = सी>संरचना वेक्टर फ्लोट एक्स; फ्लोट वाई; फ्लोट जेड; वाक्यविन्यास हाइलाइट

नाम का एक चर  के साथ   समग्र प्रकार के रूप में घोषित किया जाएगा   के सदस्य   डॉट नोटेशन का उपयोग करके एक्सेस किया जाएगा। उदाहरण के लिए,   सेट करेगा   का घटक   5 के बराबर

इसी तरह, एक रंग संरचना का उपयोग करके बनाया जा सकता है:वाक्यविन्यास प्रकाश लैंग = सी>संरचना का रंग अहस्ताक्षरित int लाल; अहस्ताक्षरित int हरा; अहस्ताक्षरित int नीला; वाक्यविन्यास हाइलाइट

3डी ग्राफिक्स में, आपको आमतौर पर प्रत्येक शीर्ष की स्थिति और रंग दोनों का ट्रैक रखना चाहिए। ऐसा करने का एक तरीका एक बनाना होगा  समग्र प्रकार, पहले बनाए गए का उपयोग कर   और   समग्र प्रकार: <वाक्यविन्यास प्रकाश लैंग = सी>स्ट्रक्चर वर्टेक्स वेक्टर स्थिति; रंग का रंग;

वाक्यविन्यास हाइलाइट

तात्कालिकता
प्रकार का एक चर बनाएँ  पहले के समान प्रारूप का उपयोग करना:

सदस्य पहुंच
के घटकों को मान असाइन करें  जैसे इतना:

वाक्यविन्यास प्रकाश लैंग = सी>वी.पोजिशन.एक्स = 0.0वी.पोजिशन.वाई = 1.5वी.पोजिशन.जेड = 0.0 v डॉट रंग. लाल = 128 v डॉट रंग. हरा = 0; v डॉट रंग. नीला= 255<वाक्यविन्यास हाइलाइट>

आदिम उपप्रकार
का प्राथमिक उपयोग  जटिल डेटाटाइप्स के निर्माण के लिए है, लेकिन कभी-कभी इसका उपयोग प्रिमिटिव संरचनात्मक प्रकार प्रणाली सबटाइपिंग बनाने के लिए किया जाता है। उदाहरण के लिए, चूंकि मानक सी आवश्यकता है कि यदि दो struसी ts में एक ही प्रारंभिक फ़ील्ड हैं, तो उन फ़ील्ड को उसी तरह कोड में प्रदर्शित किया जाएगा

<वाक्यविन्यास प्रकाश लैंग = सी>संरचना ifoo_old_stub { लंबा एक्स, वाई; संरचना इफू_संस्करण_42 लंबा एक्स, वाई, जेड; नौकरानी का नाम; लंबा ए, बी, सी;

शून्य ऑपरेट_ऑन_इफू (संरचना इफू_पुराना_स्टब *); संरचना इफू_संस्करण_42 एस; . . . ऑपरेट_ऑन_इफू (& एस); वाक्यविन्यास हाइलाइट सही ढंग से काम करेगा।

टाइप करें हस्ताक्षर
प्रकार के हस्ताक्षर (या फ़ंक्शन प्रकार) आदिम और समग्र प्रकारों से निर्मित होते हैं, और समग्र प्रकारों का निर्माण करते समय स्वयं प्रकार के रूप में काम कर सकते हैं:

<वाक्यविन्यास प्रकाश लैंग = सी> टाइपपीफ संरचना { इंट एक्स; इंट वाई; }बिंदु;

टाइपपीफ डबल (* मैट्रिक) (प्वाइंट पी 1, प्वाइंट पी 2);

टाइपपीफ संरचना { बिंदु केंद्र; डबल त्रिज्या; मीट्रिक मीट्रिक; घेरा;

यह भी देखें

 * वस्तु रचना
 * संरचना (सी प्रोग्रामिंग भाषा)
 * अदिश (गणित)