可以,但这要借助C库函数atexit()。利用atexit()函数可以在程序终止前完成一些“清理”工作——如果将指向一组函数的指针传递给atexit()函数,那么在程序退出main()函数后(此时程序还未终止)就能自动调用这组函数。在使用atexit()函数时你要注意这样两点:
第一: 由atexit()函数指定的要在程序终止前执行的函数要用关键字void说明,并且不能带参数;
第二: 由atexit()函数指定的函数在入栈时的顺序和调用atexit()函数的顺序相反,即它们在执行时遵循后进先出(LIFO)的原则。
#include
#include
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 !
阿秋!!!
可能, 有一个在stdlib.h通用工具的函数叫做“atexit”。 原型为“int atexit(void (* func) (void));” 函数描述为“注册func指向的函数,使它在程序正常结束后被调用; 实现应该至少支持注册32个函数, 按照它们注册的想到顺序进行调用; 如果注册成功, 函数返回0, 否则返回一个非0值”
不会。
mian之后确实有代码,但是内容却不知道,都是windows内部的一些清理工作