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

C में कंपाउंड लिटरल्स


C99 में पेश किए गए **कंपाउंड लिटरल्स** नामहीन ऑब्जेक्ट्स (स्ट्रक्चर, ऐरे, यूनियन) बनाने की अनुमति देते हैं जिनका उपयोग तुरंत किया जा सकता है।

सिंटैक्स

(type_name){ initializer_list }

उदाहरण: स्ट्रक्चर लिटरल

#include <stdio.h>

struct Point {
    int x, y;
};

void print_point(struct Point p) {
    printf("(%d, %d)\n", p.x, p.y);
}

int main() {
    // कंपाउंड लिटरल के रूप में स्ट्रक्चर पास करें
    print_point((struct Point){10, 20});
    
    // वेरिएबल में असाइनमेंट
    struct Point p = (struct Point){30, 40};
    print_point(p);
    
    // ऐरे कंपाउंड लिटरल
    int *arr = (int[]){1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) printf("%d ", arr[i]);
    
    return 0;
}

आउटपुट

(10, 20)
(30, 40)
1 2 3 4 5

स्टोरेज ड्यूरेशन

  • फाइल स्कोप: स्टेटिक स्टोरेज ड्यूरेशन (प्रोग्राम अवधि)।
  • ब्लॉक स्कोप: ऑटोमैटिक स्टोरेज ड्यूरेशन (ब्लॉक एंट्री पर बनता है, एग्जिट पर नष्ट)।

उपयोग के मामले

  • फंक्शन आर्गुमेंट्स के लिए अस्थायी स्ट्रक्चर/ऐरे बनाना।
  • नामित वेरिएबल के बिना डेटा पास करना।
  • डेजिग्नेटेड इनिशियलाइजर्स के साथ: (struct Point){.x=10, .y=20}।

C++ नोट

C++ में कंपाउंड लिटरल्स **नहीं** हैं। C++11 से std::initializer_list और ब्रेस्ड-इनिट-लिस्ट ({1,2,3}) समान कार्यक्षमता देते हैं।

  1. - JavaScript में लिटरल क्या है?

    JavaScript में, एक लिटरल तब होता है जब आप अपने स्क्रिप्ट फ़ाइल में इसे शाब्दिक रूप से लिखकर एक वैल्यू को संदर्भित करते हैं। लिटरल्स के विभिन्न प्रकार हैं: 4 एक नंबर लिटरल है Icecream एक स्ट्रिंग लिटरल है {color: red} एक ऑब्जेक्ट लिटरल है ऑब्जेक्ट लिटरल्स के बारे में यहाँ और पढ़ें।

  1. - जावास्क्रिप्ट में ऑब्जेक्ट लिटरल्स बनाम कंस्ट्रक्टर्स

    new Object() नोटेशन और ऑब्जेक्ट लिटरल {} नोटेशन दोनों वही काम करते हैं। वे एक ऑब्जेक्ट इनिशियलाइज़ करते हैं। हालांकि, यदि आप प्रॉपर्टीज जोड़ना शुरू करते हैं तो दूसरी नोटेशन थोड़ी अलग हो सकती है। उदाहरण let a = { name: Ayush }; यह इनिशियलाइज़ेशन इसके समतुल्य है: let a = new Object(); a.name = Ayu

  1. जावास्क्रिप्ट में टैग्ड टेम्पलेट लिटरल्स जावास्क्रिप्ट में टैग्ड टेम्पलेट लिटरल्स

    टेम्पलेट लिटरल्स हमें टैग्ड टेम्पलेट लिटरल्स बनाने की भी अनुमति देते हैं। टैग्ड लिटरल ठीक एक फ़ंक्शन परिभाषा की तरह होता है और यह हमें टेम्पलेट लिटरल्स को पार्स करने की अनुमति देता है। टैग्ड लिटरल में पैरेंथेसिस नहीं होते और टैग फ़ंक्शन को स्ट्रिंग वैल्यूज का ऐरे पहले आर्गुमेंट के रूप में मिलता है।