atexit函数的用法搞不清楚

勤奋的执着 2009-12-19 07:24:59
#include <stdio.h>
#include <stdlib.h>
void exit_fn1(void)
{
printf("Exit function #1 called\n");
}
void exit_fn2(void)
{
printf("Exit function #2 called\n");
}
int main(void)
{
/* post exit function #1 */
atexit(exit_fn1);
//exit_fn2();
/* post exit function #2 */
atexit(exit_fn2);
return 0;
}
运行结果:
Exit function #2 called
Exit function #1 called

不好意思了..没分了..
我知道这个atexit()退出的时候调用里面的函数,但是为什么这个如果按正常思路的话,应该是先输出
Exit function #1 called才对啊。但是它先输出的是Exit function #2 called

实在是搞不明白...
请帮忙解释下..谢谢
...全文
145 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
勤奋的执着 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 highball 的回复:]
用atexit()注册过的函数,在最后调用exit()函数时,按先进后出的顺序执行这些函数。C primer plus里的话。
[/Quote]

哦..这样的啊..谢谢了..
highball 2009-12-19
  • 打赏
  • 举报
回复
用atexit()注册过的函数,在最后调用exit()函数时,按先进后出的顺序执行这些函数。C primer plus里的话。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧