Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में स्ट्रक्चर और यूनियन का अंतर

स्ट्रक्चर बनाम यूनियन: तुलनात्मक तालिका

क्रमांकस्ट्रक्चरयूनियन
1परिभाषा: भिन्न डेटा आइटम्स का समूह जो एक नाम के तहत समूहीकृत होता है।परिभाषा: एक मेमोरी लोकेशन जिसे विभिन्न डेटा टाइप्स के वेरिएबल्स शेयर करते हैं।
2सिंटैक्स: struct tagname { datatype member1; ... };सिंटैक्स: union tagname { datatype member1; ... };
3उदाहरण: struct sample { int a; float b; char c; };उदाहरण: union sample { int a; float b; char c; };
4कीवर्ड: structकीवर्ड: union
5मेमोरी आवंटन: सभी मेंबर्स के आकार का योग (उदा: 7 बाइट्स)मेमोरी आवंटन: सबसे बड़े मेंबर का आकार (उदा: 4 बाइट्स)
6प्रत्येक मेंबर के लिए अलग मेमोरीएक समय में केवल एक मेंबर मेमोरी में रहता है
7सभी मेंबर्स एक साथ एक्सेसिबलकेवल एक मेंबर एक समय में वैध

मेमोरी लेआउट चित्रण

(चित्र: स्ट्रक्चर में प्रत्येक मेंबर के लिए अलग-अलग मेमोरी ब्लॉक; यूनियन में ओवरलैपिंग मेमोरी ब्लॉक)

प्रोग्राम उदाहरण: आकार की तुलना

स्ट्रक्चर

#include <stdio.h>

struct size {
    double a; // 8 bytes
    int b;    // 4 bytes
    char c;   // 1 byte
    float d;  // 4 bytes
};

int main() {
    printf("%zu", sizeof(struct size)); // पैडिंग के कारण 24 bytes
    return 0;
}
आउटपुट: 24

यूनियन

#include <stdio.h>

union size {
    double a; // 8 bytes
    int b;    // 4 bytes
    char c;   // 1 byte
    float d;  // 4 bytes
};

int main() {
    printf("%zu", sizeof(union size)); // सबसे बड़ा = 8 bytes
    return 0;
}
आउटपुट: 8

कब क्या उपयोग करें?

  • स्ट्रक्चर: जब सभी मेंबर्स को एक साथ स्टोर और एक्सेस करना हो।
  • यूनियन: जब एक समय में केवल एक मेंबर उपयोग हो, मेमोरी बचाना हो, या टाइप-पनिंग करना हो।
  1. C भाषा में कंस्टेंट क्या हैं और उदाहरण सहित C भाषा में कंस्टेंट क्या हैं और उदाहरण सहित

    कंस्टेंट को उस वेरिएबल के रूप में भी जाना जाता है जहां एक बार परिभाषित होने पर, प्रोग्राम निष्पादन के दौरान मान कभी नहीं बदलता। इस प्रकार, हम एक वेरिएबल को कंस्टेंट के रूप में घोषित कर सकते हैं जो निश्चित मानों को संदर्भित करता है। इसे लिटरल्स भी कहा जाता है। कंस्टेंट को परिभाषित करने के लिए const क

  1. iCloud+ में Hide My Email और Sign in with Apple के बीच अंतर iCloud+ में Hide My Email और Sign in with Apple के बीच अंतर

    Apple ने Hide My Email फीचर पेश किया, जो आपको ऐप्स और वेबसाइट्स में अकाउंट्स के लिए साइन अप करते समय अपना ईमेल एड्रेस छिपाने में सक्षम बनाता है, इसके निरंतर प्रयास के हिस्से के रूप में यूजर गोपनीयता में सुधार करने के लिए। हालांकि, यह फीचर दो स्थानों पर उपलब्ध है: Sign in with Apple और iCloud+। और यह

  1. - C# में क्लास और स्ट्रक्चर में अंतर

    क्लास और स्ट्रक्चर के बीच अंतर करने के लिए, हमें पहले यह समझना होगा कि डेटा को धारण करने और परिभाषित करने के संदर्भ में दोनों स्ट्रक्चर और क्लास समतुल्य प्रतीत होते हैं। ये दोनों अपने डेटा सदस्यों में कुछ डिफ़ॉल्ट मानों को परिभाषित और धारण कर सकते हैं। लेकिन यदि हम इसे इस संदर्भ से परे मानते हैं तो