当main()退出时调用另一个函数

时间:2009-11-21 21:00:25

标签: c main

当main()退出C?

时是否可以调用额外的函数

谢谢!

4 个答案:

答案 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特定