当main()退出C?
时是否可以调用额外的函数谢谢!
答案 0 :(得分:23)
您可以使用the atexit
function注册要在main
退出后运行的功能。
MSDN如何完成a nice succinct example。基本上,用atexit
注册的函数的执行顺序与注册时相反。
答案 1 :(得分:9)
尝试atexit()
功能:
void myfunc() {
/* Called when the program ends */
}
int main( int arc, char *argv[] ) {
atexit( myfunc );
...
return 0;
}
答案 2 :(得分:2)
很棒的问题和答案。只是旁注。滥用Delphi库中的类似功能导致应用程序在关闭时非常缓慢。
答案 3 :(得分:1)
虽然atexit()
是注册函数以在进程终止时运行的标准,但GCC提供析构函数 function attribute * < / sup>导致在main()
完成或exit()
被调用时自动调用函数。
void __attribute__ ((destructor)) my_fini(void);
* GCC特定