atexit()函数

来源:互联网 发布:安装windows xp系统 编辑:程序博客网 时间:2024/06/01 08:46
按照ISO C规定,一个进程可以登记多至32个函数,这些函数将由exit或者从main函数中返回时自动调用。我们称这些函数为终止处理程序,并调用atexit函数来登记这些函数。函数原型

int atexit(void (*function)(void))
返回值:若成功,返回0;若错误返回非0;
其中,atexit的参数是一个函数地址,当调用此函数时无需向他传递任何参数,也不期望它返回一个值。exit调用这些函数的顺序与它们登记时候的顺序相反。同一函数如若登记多次,也会被调用多次。
这里写图片描述
我们调用两次myfun2和一次myfun1来验证exit调用这些函数的顺序与次数。
编译运行结果如下图:
这里写图片描述
通过程序示例我们验证得到:不管atexit的位置在哪,我们总是在程序正常结束前调用atexit所登记的函数,并且调用顺序与登记顺序相反,同一函数如若登记多次,也会被调用多次。

0 0
原创粉丝点击