2)main函数在执行前和执行后有哪些操作
2024-08-28 22:23:58
main函数执行之前,主要就是初始化系统相关资源:
1. 设置栈指针
2. 初始化static静态和global全局变量,即data段的内容
3. 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容
4. 全局对象初始化,在main之前调用构造函数
5. 将main函数的参数,argc,argv等传递给main函数,然后才真正运行main函数
main函数执行之后:
1. 全局对象的析构函数会在main函数之后执行;
2. 可以用_onexit 注册一个函数,它会在main 之后执行;
如果你需要加入一段在main退出后执行的代码,可以使用onexit()函数,注册一个函数。
#include <stdlib.h> #include <stdio.h> int atexit(void (*function")(void)); void fn1( void ), fn2( void ), fn3( void ); int main( void ){ onexit( fn1 ); onexit( fn2 ); printf( "This is executed first." ); } void fn1(){ printf( " This is" ); } void fn2(){ printf( " executed next." ); } |
结果:This is executed first.This is executed next.
最新文章
- Android开机启动Activity或者Service方法
- Atitit 常用比较复杂的图像滤镜 attilax大总结
- 第六篇:在SOUI中用九宫格拉伸方式显示一个图片资源
- c#组元(Tuple)的使用
- 《高性能javascript》读书笔记:P1减少跨作用域的变量访问
- cdoj 题目简单分类
- VB 增强的部件与引用
- js 浏览器版本检测
- win7配置简单的FTP服务器
- 线程问题、异常处理、自定义URL
- 内容中断随想录(risc cpu的那些事)
- 转:Jmeter常见问题 (转载) http://www.51testing.com/?uid-128005-action-viewspace-itemid-84094
- jsonp的原理和实现
- Java 学习笔记 二维数组和对象数组
- ImitateUCM项目启动Tomcat的过程
- imeiimsi生成规则
- 将list集合转json
- python语法之函数
- python报错ModelNotFoundError
- django基础操作