分类: C/C++
2009-09-23 07:38:48
昨天有位朋友问:程序在执行完main函数后就要退出,如果想在main()函数执行完再运行
其他函数,该怎么做呢?
这种情况,是有可能遇到的。
我们这次就来看看这个问题!
C函数库为我们提供了一个函数atexit(),
该函数的原型为int atexit (void (*function)(void));定义在stdlib.h函数库中。
该函数用来设置一个程序正常结束前调用的函数。当程序调用exit()或从main中返回
时,参数function所指的函数就会被调用,在该函数返回后才会真正的退出。
函数atexit调用成功返回0,否则返回-1,可以再errno中查看错误信息。
#include
#include
void function1(void),function2(void),function3(void),function4(void);
int
main(void)
{
atexit(function1);
atexit(function2);
atexit(function3);
atexit(function4);
printf("注意啊,main函数马上就要结束啦!\n");
}
void
function1(void){
printf("当前是function1函数\n");
}
void
function2(void){
printf("当前是function2函数\n");
}
void
function3(void){
printf("当前是function3函数\n");
}
void
function4(void){
printf("当前是function4函数\n");
}
可以看到用atexit注册的函数在执行时,和注册的顺序是相反的。
我们暂且先介绍这一个函数。
感谢你对小孟的支持!
mxp556@163.com xiangpengmeng@gmail.com