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

eda*_*oyo 10 c program-entry-point

当main()退出C时,是否可以调用额外的函数?

谢谢!

Jam*_*lis 23

您可以main使用atexit功能注册退出后运行功能.

MSDN有一个很好的简洁示例,说明了如何完成.基本上,注册的功能以与注册时atexit相反的顺序执行.

  • atexit()是特定于平台的怪异和不可预测的崩溃的常见来源.例如,OpenBSD手册页建议不要使用它.我正在寻找一些关于这个主题我在2003年左右阅读的文章,但却无法找到它们...... (2认同)
  • 我猜你可能会对你如何称之为退出感到粗心大意,或者你可能会对你如何调用atexit感到粗心,但不是两者兼而有之.大多数程序员更喜欢前者. (2认同)

Gra*_*row 9

试试这个atexit()功能:

void myfunc() {
    /* Called when the program ends */
}

int main( int arc, char *argv[] ) {
    atexit( myfunc );
    ...
    return 0;
}
Run Code Online (Sandbox Code Playgroud)