[C语言] 函数在退出时干了些什么?atexit函数的使用
2016-08-19 03:33
267 查看
本文于2016-6-11发布于博主的空间,是后来才搬运过来的
函数执行完最后一行便退出吗?main函数是一个程序的结束吗?其实不是。
在stdlib库里面有一个叫atexit的函数,它的参数是一个函数指针,它的作用是当调用它的函数即将退出之时调用该函数指针指向的函数。虽然这个函数对于我来说用处不大,但它至少让我对程序运行有了新的认识。
使用它可以在函数退出之前做一些善后工作
示例代码:
运行结果:
func main
func foo
func bar
需要注意的是,这个程序放在VC6.0上面运行的话,atexit函数只在main函数里有作用,是不会执行bar函数的,应该是受到了C语言版本的影响。
函数执行完最后一行便退出吗?main函数是一个程序的结束吗?其实不是。
在stdlib库里面有一个叫atexit的函数,它的参数是一个函数指针,它的作用是当调用它的函数即将退出之时调用该函数指针指向的函数。虽然这个函数对于我来说用处不大,但它至少让我对程序运行有了新的认识。
使用它可以在函数退出之前做一些善后工作
示例代码:
#include <stdio.h> #include <stdlib.h> void bar() { printf("func bar\n"); } void foo() { atexit(&bar); printf("func foo\n"); } int main() { atexit(&foo); printf("func main\n"); return 0; }
运行结果:
func main
func foo
func bar
需要注意的是,这个程序放在VC6.0上面运行的话,atexit函数只在main函数里有作用,是不会执行bar函数的,应该是受到了C语言版本的影响。
相关文章推荐
- 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
- 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
- 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
- C语言中,函数不申明也能使用,但会出现warning: implicit declaration of function
- C语言下的函数可变参数的使用
- 深入了解C语言(函数的参数传递和函数使用参数的方法)
- fwrite()函数和fread()函数分别有几个返回值?分别代表什么意思?(C语言)
- c语言里面的调用显示系统时间的函数及实现过程是什么
- c语言中头文件的建立与使用-函数、全局变量、全局数组
- C语言中使用extern修饰函数要注意(转)
- what's in string? c语言string类函数实现汇总 都是学习使用指针的好例子啊(算是读书摘抄和笔记吧)
- C语言使用extern函数要注意
- 深入了解C语言(函数的参数传递和函数使用参数的方法)
- C语言深入浅出可变参数函数的使用技巧
- C语言getopt()函数的使用
- 学习51笔记与一份从网上找的资料:单片机C语言中_nop_函数的使用及C语言的延时计算2010-
- C语言以函数为程序的基本单位,有什么好处?
- C语言中va函数的使用
- C语言中getch()函数的使用
- [转] 关于C语言中getopt()函数的使用方法