一句话总结:注册终止函数,在main函数结束后调用。仅能接受无参无返回类型的函数,可结合boost::bind灵活使用。
函数名: atexit
头文件:#include<stdlib.h>
功 能: 注册终止函数(即main执行结束后调用的函数)
用 法: void atexit(void (*func)(void));
注意:exit调用这些注册函数的顺序与它们 登记时候的顺序相反。同一个函数如若登记多次,则也会被调用多次。
#include <iostream>
using namespace std;
void fun1()
{
cout<<"fun1"<<endl;
}
void fun2()
{
cout<<"fun2"<<endl;
}
void fun3()
{
cout<<"fun3"<<endl;
}
int main(int argc, const char * argv[]) {
// insert code here...
atexit(fun1);
atexit(fun2);
atexit(fun3);
atexit(fun3);
cout<<"main end"<<endl;
return 0;
}
运行结果:
main end
fun3
fun3
fun2
fun1
Program ended with exit code: 0