在程序退出main()函数之后,还有可能执行一部分代码吗?
来源:互联网 发布:淘宝联系卖家客服 编辑:程序博客网 时间:2024/05/16 01:29
可以,但这要借助C库函数atexit()。利用atexit()函数可以在程序终止前完成一些“清理”工作——如果将指向一组函数的指针传递给atexit()函数,那么在程序退出main()函数后(此时程序还未终止)就能自动调用这组函数。在使用atexit()函数时你要注意这样两点:
第一: 由atexit()函数指定的要在程序终止前执行的函数要用关键字void说明,并且不能带参数;
第二: 由atexit()函数指定的函数在入栈时的顺序和调用atexit()函数的顺序相反,即它们在执行时遵循后进先出(LIFO)的原则。
#include<stdlib.h>
#include<stdio.h>
void my_exit1(void)
{
printf("my_exit1() function !/n");
}
void my_exit2(void)
{
printf("my_exit2() function !/n");
}
void main()
{
atexit ( my_exit1 );
atexit ( my_exit2 );
printf("now, eixt this program.../n");
}
输出结果为:
now, eixt this program...
my_exit2() function !
my_exit1() function !
- 在程序退出main()函数之后,还有可能执行一部分代码吗?
- 怎样在main()函数退出之后再执行一段代码?
- 程序执行顺序,为何先执行main,在Main退出之后可否执行别的函数呢
- 在main函数执行之前和之后执行一段代码
- 怎样使代码在main函数前执行,怎样使代码在main函数之后执行
- 如何使得代码在main函数之前/之后执行
- 程序执行正确, 但退出时崩溃在main() 最后一个语句之后。为什么会这样?
- atexit(在main函数执行完毕后,是否可能再执行一段代码?)
- c++学习之旅 (在main函数执行前执行一段代码和在main函数执行之后执行一段代码)
- main函数之前还有代码吗
- 一个c程序在执行main函数之前和main之后都做了那些事情啊
- C++程序进入main函数之前,退出main函数之后会做些什么?
- 在main函数之前和之后执行一些操作
- 如何在main函数前后执行代码
- c/c++怎样在程序的入口处main()函数之前和之后执行另外的自定义函数
- 在main 函数执行前、后再执行的代码
- 在main函数执行结束后再执行的代码
- 在main函数执行之前和执行之后执行的方法
- 强制类型转换相关概念
- php编译gd出错!(已解决)
- malloc()、calloc()、realloc()
- 开始学struts。
- 常见的动态内存错误
- 在程序退出main()函数之后,还有可能执行一部分代码吗?
- 总线错误和段错误相关概念
- const与数组声明
- 字符串拷贝和内存拷贝函数
- 字符串和内存数据比较函数
- 读《沉思录》后,与师妹的对答—— 所说并非自己所能做到,只是见解。说和做不是直接对等关系
- 连接字符串的函数
- myeclipse 修改项目名称
- 查找字符/字符串的函数