यहां हम देखेंगे कि कैसे एक कोड लिखा जाए जहां दो फ़ंक्शन मौजूद हों, और एक फ़ंक्शन main फ़ंक्शन से पहले निष्पादित होगा, और दूसरा फ़ंक्शन main फ़ंक्शन के बाद निष्पादित होगा। इन सुविधाओं का उपयोग main() निष्पादित करने से पहले कुछ स्टार्टअप कार्य करने के लिए और main() निष्पादित करने के बाद कुछ क्लीनअप कार्य करने के लिए किया जाता है।
यह कार्य करने के लिए हमें इन दो फ़ंक्शंस के लिए एट्रिब्यूट लगाना होगा। जब एट्रिब्यूट कंस्ट्रक्टर एट्रिब्यूट होता है, तो यह main() से पहले निष्पादित होगा, और जब एट्रिब्यूट डिस्ट्रक्टर प्रकार का होता है, तो यह 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");
return 0;
}
आउटपुट
यह main से पहले निष्पादित होता है। main के अंदर यह main के बाद निष्पादित होता है।
नोट: यह फीचर GCC कंपाइलर के लिए विशिष्ट है और मानक C का हिस्सा नहीं है।