यहां हम देखेंगे कि एक कोड कैसे लिखना है जहां दो फ़ंक्शन मौजूद हैं, और एक फ़ंक्शन मुख्य फ़ंक्शन से पहले निष्पादित किया जाएगा, और दूसरा फ़ंक्शन मुख्य फ़ंक्शन के बाद निष्पादित किया जाएगा। इन सुविधाओं का उपयोग मुख्य को निष्पादित करने से पहले कुछ स्टार्टअप कार्य करने के लिए किया जाता है, और कुछ को मुख्य निष्पादित करने के बाद सफाई कार्य करने के लिए किया जाता है।
इस कार्य को करने के लिए हमें इन दो कार्यों के लिए विशेषताएँ डालनी होंगी। जब विशेषता कंस्ट्रक्टर विशेषता है, तो इसे मुख्य () से पहले निष्पादित किया जाएगा, और जब विशेषता विनाशक प्रकार है, तो इसे मुख्य () के बाद निष्पादित किया जाएगा।
हम जीसीसी कार्यों का उपयोग कर रहे हैं। फ़ंक्शन __attribute__() है। इस मामले में हम दो अलग-अलग विकल्पों का उपयोग कर रहे हैं। कंस्ट्रक्टर और डिस्ट्रक्टर __attribute__() फ़ंक्शन के साथ। सिंटैक्स __attribute__((constructor)) प्रोग्राम शुरू होने पर किसी फ़ंक्शन को निष्पादित करने के लिए उपयोग किया जाता है। और सिंटैक्स __attribute__((destructor)) का उपयोग फ़ंक्शन को निष्पादित करने के लिए किया जाता है जब main() फ़ंक्शन पूरा हो जाता है। बेहतर विचार प्राप्त करने के लिए कृपया उदाहरण देखें।
उदाहरण
#include <stdio.h> void before_main() __attribute__((constructor)); void after_main() __attribute__((destructor)); void before_main() { printf("This is executed before main.\n"); } void after_main() { printf("This is executed after main."); } main() { printf("Inside main\n"); }
आउटपुट
This is executed before main. Inside main This is executed after main.