首页 > C/C++语言 > C/C++基本语法 > 在C语言中main()前后执行的函数
2022
10-17

在C语言中main()前后执行的函数

使用GCC系列C编译器,我们可以在main()之前和之后标记一些要执行的函数。因此,一些启动代码可以在main()启动之前执行,一些清理代码可以在main()结束之后执行。例如,在以下程序中,myStartupFun()在main()之前调用,myCleanupFun(。

 

#include<stdio.h>

 

/* Apply the constructor attribute to myStartupFun() so that it

is executed before main() */

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

 

 

/* Apply the destructor attribute to myCleanupFun() so that it

is executed after main() */

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

 

 

/* implementation of myStartupFun */

void myStartupFun (void)

{

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

}

 

/* implementation of myCleanupFun */

void myCleanupFun (void)

{

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

}

 

int main (void)

{

printf ("hello\n");

return 0;

}

Output:

 

startup code before main()

hello

cleanup code after main()

 

与上述特性类似,GCC为标准C语言添加了许多其他有趣的特性。


留下一个回复