在main函数退出后执行其他函数 http://blog.chinaunix.net/uid-22332450-id-1775058.html

本文介绍了如何使用C语言中的atexit函数在程序正常结束前调用特定的函数,详细展示了通过设置atexit来确保main函数执行完毕后执行其他函数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天有位朋友问:程序在执行完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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值