1.main主函数执行完毕后,是否可能会再执行一段代码,给出说明。(朗讯面试题)
如果你需要加入一段在main退出后执行的代码,可以使用atexit()函数,注册一个函数。
#include <stdio.h>
#include <stdlib.h>
void fn1( void ), fn2( void ), fn3( void ), fn4( void );
// atexit()以栈的方式注册函数,先注册的函数会后执行。
void main( void )
{
atexit( fn1 );
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( “This is executed first.\n” );
return;
}
void fn1()
{
printf( “next.\n” );
}
void fn2()
{
printf( “executed ” );
}
void fn3()
{
printf( “is ” );
}
void fn4()
{
printf( “This ” );
}
结果:
This is executed first.
This is executed next.
讲解:
atexit
Processes the specified function at exit.
int atexit( void ( __cdecl *func )( void ) );
Routine Required Header Compatibility
atexit < stdlib.h> ANSI, Win 95, Win NT
For additional compatibility information, see Compatibility in the Introduction.
Libraries
LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version
To generate an ANSI-compliant application, use the ANSI-standard atexit function (rather than the similar _onexit function).
Return Value
atexit returns 0 if successful, or a nonzero value if an error occurs.
Parameter
func
Function to be called
Remarks
The atexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to atexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to atexit cannot take parameters. atexit and _onexit use the heap to hold the register of functions. Thus, the number of functions that can be registered is limited only by heap memory.
分享到:
相关推荐
3月23日 上午9点32分(国核保理).aac
2020年3月23日-4月22日蘑菇街地域指数.xls
2020年3月24日-4月23日“淘宝直播” 地域指数.xls
《蘑菇街地域指数:2020年3月23日至4月22日数据分析》 蘑菇街,作为中国领先的女性时尚购物平台,其地域指数是反映各地区用户消费行为和市场趋势的重要指标。这份“行业数据-2020年3月23日-4月22日蘑菇街地域指数”...
VS2010 动态库开发及应用(2014年3月23日).doc
DXperience 8.3.3 part3 (2008年12月23日版本)
《淘宝直播地域指数分析——2020年3月24日至4月23日》 在数字化的时代背景下,电商已成为全球经济的重要组成部分,而直播电商则成为新兴的销售模式,引领了新的消费潮流。这份“淘宝直播”地域指数报告,为我们揭示...
【集训全6套练习题-3月23日练习题】 本次集训涉及的练习题目涵盖了几种不同的算法问题,主要包括字符串操作、路径优化、素数计算以及文本处理等。接下来,我们将逐一分析这些题目所包含的知识点。 1. **Computer ...
**标题**: RFC 2021年2月23日.rar **描述**: 提供的压缩包文件包含了一份英文原版的RFC文档合集,格式为CHM(Microsoft Compiled HTML Help),支持全文搜索功能。这份资源收录了截止到2021年2月23日前的所有RFC...
资源汇总Excel初始表2024-4月23日
6.5版本是该软件的一个重要里程碑,它在2010年3月23日发布了正式版,并带有数字签名,确保了软件的安全性和可信度。 1. **数字签名**:在Foxmail 6.5正式版中,数字签名是一项关键的安全特性。这是通过一种加密算法...
世界读书日活动旨在庆祝每年的4月23日,这是一个全球性的节日,鼓励人们特别是学生群体培养阅读习惯,提升阅读质量。活动由XX图书馆主办,XX学校承办,旨在构建书香社会,弘扬社会正能量,通过阅读传递优秀文化。 ...
在3月23日的主题班会上,通过一系列的讨论和展示,旨在引导学生理解并注重自身的仪容仪表,塑造良好的个人形象,这对他们的成长具有深远的影响。 首先,仪容仪表不仅仅是外貌的整洁,更是精神面貌的体现。如同保安...
2022年3月13日23:21:32 微服务笔记
Infragistics NetAdvantage for ASP.NET 2009 Vol 2 Part3(2009年10月23日的版本 包含Key)
在这个特定的版本——"Telerik RadControls for Silverlight 4.0 Q3 2009 SP2 hotfix(2010年2月23日的版本)"中,我们看到它主要针对Silverlight 4.0的应用程序,提供了2009年第三季度服务包2(SP2)的一个热修复。...
标题中的"RT8188EUS驱动程序for linux ubuntu 16.04 2018年03月23日修改的源码"指的是适用于Linux Ubuntu 16.04操作系统的RT8188EUS无线网卡驱动程序的源代码,这个版本在2018年3月23日进行了更新和修改。...
【文档标题】:“1月23日京唐港超市开业庆典方案.doc” 【文档描述】:“1月23日京唐港超市开业庆典方案.doc” 本文档详细规划了一个超市开业庆典的策划方案,旨在通过精心组织的活动来提升超市在京唐港的品牌知名...
Q3 2009 SP2 hotfix是该产品的一个特定更新,发布于2010年2月23日,旨在解决在Q3 2009 Service Pack 2版本中发现的问题和提高性能。 1. **Telerik RadControls**: 这是一系列高级的.NET UI控件,提供了丰富的功能和...