Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当 main() 在 C 中退出时,是否可以调用额外的函数?
谢谢!
您可以使用该函数注册函数以在main退出后运行。atexit
main
atexit
MSDN 有一个很好的简洁示例来说明这是如何完成的。基本上,注册的功能是按照注册atexit时的相反顺序执行的。
试试这个atexit()功能:
atexit()
void myfunc() { /* Called when the program ends */ } int main( int arc, char *argv[] ) { atexit( myfunc ); ... return 0; }
很好的问题和答案。只是一个旁注。滥用 Delphi 库中的类似功能会导致应用程序在关闭时非常缓慢。
虽然atexit()是注册函数以在进程终止时运行的标准,但 GCC 提供了一个析构 函数属性*,它导致函数在main()完成或exit()已被调用时自动调用。
main()
exit()
void __attribute__ ((destructor)) my_fini(void);
* GCC 特定