可以,但这要借助C库函数atexit()。利用atexit()函数可以在程序终止前完成一些“清理”工作——如果将指向一组函数的指针传递给atexit()函数,那么在程序退出main()函数后(此时程序还未终止)就能自动调用这组函数。在使用atexit()函数时你要注意这样两点:
第一: 由atexit()函数指定的要在程序终止前执行的函数要用关键字void说明,并且不能带参数;
第二: 由atexit()函数指定的函数在入栈时的顺序和调用atexit()函数的顺序相反,即它们在执行时遵循后进先出(LIFO)的原则。
#include<stdlib.h> #include<stdio.h>
void my_exit1(void) { printf("my_exit1() function !/n"); }
void my_exit2(void) { printf("my_exit2() function !/n"); }
void main() { atexit ( my_exit1 ); atexit ( my_exit2 ); printf("now, eixt this program.../n"); } 输出结果为: now, eixt this program... my_exit2() function ! my_exit1() function ! |