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

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


**अनाम (नामहीन) यूनियन/स्ट्रक्चर** के पास टैग नाम नहीं होता। इनके मेम्बर्स पैरेंट स्कोप में सीधे एक्सेसिबल होते हैं।

सिंटैक्स

struct {
    int x, y;  // अनाम स्ट्रक्चर
};

union {
    int i;
    float f;   // अनाम यूनियन
};

उदाहरण: नेस्टेड अनाम स्ट्रक्चर

#include <stdio.h>

struct Point {
    // अनाम स्ट्रक्चर
    struct {
        int x;
        int y;
    };
};

int main() {
    struct Point pt;
    pt.x = 10;  // सीधा एक्सेस - pt.inner.x नहीं
    pt.y = 20;
    printf("Point (%d, %d)\n", pt.x, pt.y);
    return 0;
}

आउटपुट

Point (10, 20)

अनाम यूनियन उदाहरण

#include <stdio.h>

struct Value {
    int type;  // 0=int, 1=float
    union {    // अनाम यूनियन
        int i;
        float f;
    };
};

void print_val(struct Value v) {
    if (v.type == 0)
        printf("Int: %d\n", v.i);
    else
        printf("Float: %f\n", v.f);
}

int main() {
    struct Value v1 = {0, .i = 42};
    struct Value v2 = {1, .f = 3.14f};
    print_val(v1);
    print_val(v2);
    return 0;
}

नियम और सीमाएं

  • अनाम स्ट्रक्चर/यूनियन के मेम्बर नाम **पैरेंट में यूनिक** होने चाहिए।
  • नेस्टेड अनाम स्ट्रक्चर/यूनियन अनुमत हैं।
  • C11 मानक से आधिकारिक रूप से समर्थित (GCC एक्सटेंशन के रूप में पहले से उपलब्ध)।
  • C++ में अनाम यूनियन समर्थित हैं, अनाम स्ट्रक्चर नहीं (कुछ कंपाइलर्स एक्सटेंशन के रूप में सपोर्ट करते हैं)।
  1. 4 बेहतरीन गुमनाम और निजी ईमेल सेवाएं 4 बेहतरीन गुमनाम और निजी ईमेल सेवाएं

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

  1. डेटा स्ट्रक्चर में कंप्रेस्ड क्वाडट्रीज़ और ऑक्ट्रीज़ डेटा स्ट्रक्चर में कंप्रेस्ड क्वाडट्रीज़ और ऑक्ट्रीज़

    कंप्रेस्ड क्वाडट्रीज़ (Compressed Quadtrees) प्रत्येक उपविभाजित सेल (Subdivided Cell) से संबंधित नोड को स्टोर करते समय, हम बहुत सारे खाली नोड्स स्टोर कर सकते हैं। ऐसे विरल ट्रीज़ (Sparse Trees) के आकार को कम करना केवल उन सबट्रीज़ को स्टोर करके संभव है जिनके लीफ में दिलचस्प डेटा होता है (यानी महत्वपू

  1. - जावा में HashMap और LinkedHashMap में अंतर

    इस पोस्ट में, हम जावा में HashMap और LinkedHashMap के बीच अंतर को समझेंगे।HashMapइस संरचना में, इंसर्शन का क्रम संरक्षित नहीं है।यह मैप्स को स्टोर करने के लिए HashTable का उपयोग करता है।यह AbstractMap को एक्सटेंड करता है।यह Map इंटरफेस को इम्प्लीमेंट करता है।इसे JDK 2.0 में पेश किया गया था।इसका अपेक