C++面试题之 main函数执行完之后还会调用其他的函数吗?
来源:互联网 发布:木托盘设计软件 编辑:程序博客网 时间:2024/05/18 02:12
感谢原作者,原文地址:click me
初次从面试宝典中看到这个问题,我那也是一脸的懵逼啊。老师一直告诉我们,main是函数的入口地址,执行完成后,就返回操作系统了。殊不知还有这么多没了解过的知识。
题目:
main()函数执行完后,还会调用执行其他的语句吗?
我们通常认为C语言的起始函数是main()函数,实质上一个程序的启动函数并不一定是main()函数,这个可以采用链接器来设置,但是gcc中默认main()就是C语言的入口函数,在main函数启动之前,内核会调用一个特殊的启动例程,这个启动例程从内核中取得命令行参数值和环境变量值,为调用main()函数做好准备。
因此对应程序而言main()函数并不是起始,但是对应C 语言而言,main()函数就是入口地址。
按照ISO C的规定,一个进程可以登记多达32个函数,这些函数将由exit自动调用,通常这32个函数被称为终止处理程序,并调用atexit()函数来登记这些函数。 (函数的调用顺序与注册的顺序是相反的,通过下面的实例可以看出来)
举例
代码如下:
运行结果:
函数说明:
头文件:#include <stdlib.h>
定义函数:int atexit (void (*function) (void));
atexit()用来设置一个程序正常结束前调用的函数. 当程序通过调用exit()或从main()中返回时, 参数function 所指定的函数会先被调用, 然后才真正由exit()结束程序。
阅读全文
0 0
- C++面试题之 main函数执行完之后还会调用其他的函数吗?
- C++面试题: main函数执行完之后还会调用其他的函数吗?
- main()函数执行完后,还会调用执行其他的语句吗?
- (面试题)main函数在开始前或结束后是否会执行其他的代码?
- [C/C++] main函数执行前后还会发生什么
- main函数之后的调用
- main函数之前、之后调用的函数
- C++面试之main函数之后的调用
- c语言面试题---main函数
- atexit()函数(使main函数之后可以执行其他函数)
- C++中main函数执行完毕后还可以执行其他语句么?
- main 函数执行以前以及以后,分别还会执行什么代码?
- c语言中在main函数之前会执行什么
- 多玩YY语音的面试题:C++中如何在main()函数之前执行操作?
- C语言main函数执行的前后
- c/c++怎样在程序的入口处main()函数之前和之后执行另外的自定义函数
- 在main()之前和之后调用自己的函数
- 面试题之final,finally和finalize的区别以及如果catch里面有return语句,请问finally里面的代码还会执行吗?
- HDU-1710 给出前序中序输出后序
- css揭秘-2
- jsp基本介绍
- 算法分析与设计第八周
- Python学习(5)--列表
- C++面试题之 main函数执行完之后还会调用其他的函数吗?
- JAVA进阶之Servlet、JSP
- lua学习笔记—table
- Android 退出app,循环遍历退出
- Questmobile应用商店实力榜:应用宝稳居第一领跑行业
- 超现实VR乐园:一家自主研发VR游戏和动捕方案的体验馆
- 宋仲基同款 美国队长vivo Xplay5旗舰版今日全国火爆上市
- 《太阳的后裔》原声专辑销售额破1000万
- Linux常用命令之cal date