很多时候我们在程序退出以前。需要做一些比如资源释放的事情。但是当main函数退出的时候,我们是否有办法来做一些其他事情呢?但是是我们可以使用atexit()函数实现。这个函数来注册程序正常终止的时候。要被调用的函数。
函数原型:
int atexit(void (*)(void));
这个函数在main函数结束时,它调用函数的顺序与注册他们的顺序相反。
示例代码如下
#include <stdio.h>
#include <stdlib.h>
void fun1();
void fun2();
int main()
{
atexit(fun1);
atexit(fun2);
printf("main fun exit....\n");
//system("pause");
return 0;
}
void fun1()
{
printf("calling fun1....\n");
//system("pause");
}
void fun2()
{
printf("calling fun2....\n");
}
执行结果是:
main fun exit....
calling fun2....
calling fun1....