Рубрики

Функции, которые выполняются до и после main () в C

С помощью компиляторов семейства GCC мы можем пометить некоторые функции, выполняемые до и после main (). Таким образом, некоторый код запуска может быть выполнен до запуска main (), а некоторый код очистки может быть выполнен после завершения main (). Например, в следующей программе myStartupFun () вызывается перед main (), а myCleanupFun () вызывается после main ().

#include<stdio.h>

  
/ * Применить атрибут конструктора к myStartupFun (), чтобы он

    выполняется перед main () * /

void myStartupFun (void) __attribute__ ((constructor));

  

  
/ * Применить атрибут деструктора к myCleanupFun (), чтобы он

   выполняется после main () * /

void myCleanupFun (void) __attribute__ ((destructor));

  

  
/ * реализация myStartupFun * /

void myStartupFun (void)

{

    printf ("startup code before main()\n");

}

  
/ * реализация myCleanupFun * /

void myCleanupFun (void)

{

    printf ("cleanup code after main()\n");

}

  

int main (void)

{

    printf ("hello\n");

    return 0;

}

Выход:

startup code before main()
hello
cleanup code after main()

Как и вышеупомянутая функция, GCC добавил много других интересных функций в стандартный язык Си. Смотрите это для более подробной информации.

Рекомендуемые посты:

Функции, которые выполняются до и после main () в C

0.00 (0%) 0 votes