Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47924
  • 博文数量: 18
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 209
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-11 19:33
文章分类

全部博文(18)

文章存档

2011年(1)

2009年(17)

我的朋友

分类: C/C++

2009-09-23 07:38:48

 

 

昨天有位朋友问:程序在执行完main函数后就要退出,如果想在main()函数执行完再运行

其他函数,该怎么做呢?

 

这种情况,是有可能遇到的。

 

我们这次就来看看这个问题!

C函数库为我们提供了一个函数atexit(),

该函数的原型为int atexit (void (*function)(void));定义在stdlib.h函数库中。

该函数用来设置一个程序正常结束前调用的函数。当程序调用exit()或从main中返回

时,参数function所指的函数就会被调用,在该函数返回后才会真正的退出。

函数atexit调用成功返回0,否则返回-1,可以再errno中查看错误信息。

                                               #include

                                               #include

                                               void function1(void),function2(void),function3(void),function4(void);

                                              

                                               int

                                               main(void)

                                               {

                                                        atexit(function1);

                                                        atexit(function2);

                                                        atexit(function3);

                                                        atexit(function4);

                                                        printf("注意啊,main函数马上就要结束啦!\n");

                                               }

                                               void

                                               function1(void){

                                                        printf("当前是function1函数\n");

                                               }

                                               void

                                               function2(void){

                                                        printf("当前是function2函数\n");

                                               }

                                               void

                                               function3(void){

                                                        printf("当前是function3函数\n");

                                               }

                                               void

                                               function4(void){

                                                        printf("当前是function4函数\n");

                                               }

 

可以看到用atexit注册的函数在执行时,和注册的顺序是相反的。

我们暂且先介绍这一个函数。

感谢你对小孟的支持!

mxp556@163.com  xiangpengmeng@gmail.com

 

阅读(2384) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~