__аттрибуте__((конструктор)) и __аттрибуте__((деструцтор)) синтаксе у Ц

Напишите две функције у Ц користећи ГЦЦ компајлер од којих се једна извршава пре главне функције, а друга после главне функције. ГЦЦ специфичне синтаксе : 1. __атрибут__((конструктор)) синтакса: Ова конкретна ГЦЦ синтакса када се користи са функцијом извршава исту функцију при покретању програма, тј. маин() функција. 2. __атрибут__((деструктор)) синтакса: Ова конкретна ГЦЦ синтакса када се користи са функцијом извршава исту функцију непосредно пре него што се програм заврши преко _екит, тј. маин() функција. Објашњење : Начин на који конструктори и деструктори функционишу је да фајл дељеног објекта садржи посебне одељке (.цторс и .дторс на ЕЛФ-у) који садрже референце на функције означене атрибутима конструктора и деструктора. Када се библиотека учита/испразни, програм динамичког учитавања проверава да ли такви одељци постоје и ако постоје, позива функције које су у њима референциране. Неколико тачака у вези са њима вреди напоменути: 1. __атрибут__((конструктор)) покреће се када се дељена библиотека учита обично током покретања програма. 2. __атрибут__((деструктор)) покреће се када се дељена библиотека испразни обично на излазу из програма. 3. Две заграде су вероватно да их разликују од позива функција. 4. __атрибут__ је ГЦЦ специфична синтакса; није функција или макро. Код возача : CPP
   // C program to demonstrate working of   // __attribute__((constructor)) and   // __attribute__((destructor))   #include      // Assigning functions to be executed before and   // after main()   void     __attribute__  ((  constructor  ))     calledFirst  ();   void     __attribute__  ((  destructor  ))     calledLast  ();   void     main  ()   {      printf  (  '  n  I am in main'  );   }   // This function is assigned to execute before   // main using __attribute__((constructor))   void     calledFirst  ()   {      printf  (  '  n  I am called first'  );   }   // This function is assigned to execute after   // main using __attribute__((destructor))   void     calledLast  ()   {      printf  (  '  n  I am called last'  );   }   
Output:
I am called first I am in main I am called last  
Креирај квиз