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

C में attribute((constructor)) और attribute((destructor)) सिंटैक्स

यहां हम देखेंगे कि कैसे एक कोड लिखा जाए जहां दो फ़ंक्शन मौजूद हों, और एक फ़ंक्शन main फ़ंक्शन से पहले निष्पादित हो, और दूसरा फ़ंक्शन main फ़ंक्शन के बाद निष्पादित हो। इन विशेषताओं का उपयोग main को निष्पादित करने से पहले कुछ स्टार्टअप कार्य करने के लिए और main को निष्पादित करने के बाद कुछ क्लीनअप कार्य करने के लिए किया जाता है।

इस कार्य को करने के लिए हमें इन दो फ़ंक्शन के लिए attribute लगाना होगा। जब attribute कंस्ट्रक्टर attribute होता है, तो यह main() से पहले निष्पादित होगा, और जब attribute डिस्ट्रक्टर प्रकार का होता है, तो यह main() पूरा होने के बाद निष्पादित होगा।

हम GCC फ़ंक्शन का उपयोग कर रहे हैं। फ़ंक्शन __attribute__() है। इस मामले में हम __attribute__() फ़ंक्शन के साथ दो अलग-अलग विकल्पों का उपयोग कर रहे हैं: कंस्ट्रक्टर और डिस्ट्रक्टर। सिंटैक्स __attribute__((constructor)) का उपयोग प्रोग्राम शुरू होने पर फ़ंक्शन को निष्पादित करने के लिए किया जाता है। और सिंटैक्स __attribute__((destructor)) का उपयोग main() फ़ंक्शन पूरा होने पर फ़ंक्शन को निष्पादित करने के लिए किया जाता है। बेहतर समझ के लिए उदाहरण देखें।

उदाहरण

#include <stdio.h>
void before_main() __attribute__((constructor));
void after_main() __attribute__((destructor));

void before_main() {
    printf("यह main से पहले निष्पादित होता है।\n");
}

void after_main() {
    printf("यह main के बाद निष्पादित होता है।");
}

int main() {
    printf("main के अंदर\n");
}

आउटपुट

यह main से पहले निष्पादित होता है।
main के अंदर
यह main के बाद निष्पादित होता है।
  1. - ऑब्जेक्ट लिटरल और कंस्ट्रक्टर फंक्शन से बने ऑब्जेक्ट्स में मुख्य अंतर क्या है?

    ऑब्जेक्ट लिटरल का उपयोग करके बनाए गए ऑब्जेक्ट्स सिंगलटन होते हैं, जिसका अर्थ है कि जब ऑब्जेक्ट में कोई परिवर्तन किया जाता है, तो यह पूरे स्क्रिप्ट में उस ऑब्जेक्ट को प्रभावित करता है। जबकि यदि कोई ऑब्जेक्ट कंस्ट्रक्टर फंक्शन का उपयोग करके बनाया जाता है और उसमें परिवर्तन किया जाता है, तो वह परिवर्तन

  1. फ़ंक्शन को फ़ंक्शन और मेथड के रूप में कैसे इनवोक करें? फ़ंक्शन को फ़ंक्शन और मेथड के रूप में कैसे इनवोक करें?

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

  1. JavaScript में डिस्ट्रक्चरिंग और फंक्शन पैरामीटर्स JavaScript में डिस्ट्रक्चरिंग और फंक्शन पैरामीटर्स

    JavaScript में फंक्शन पैरामीटर्स को डिस्ट्रक्चर करने का निम्नलिखित कोड है:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>