c++在main函数运行前,需要进行一些操作,主要是初始化系统的相关资源
1. 设置栈指针
2. 初始化static静态和global全局变量,即data段的内容
3. 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容
4. 全局对象初始化,在main之前调用构造函数
5. 将main函数的参数,argc,argv等传递给main函数,然后才真正运行main函数
设置栈指针:
为栈分配相关的位置,用来放一些局部变量和其他数据
初始化静态和全局变量:
把全局和静态变量初始化,放在相应的位置
将未初始化的全局变量赋初值:
将未设置初值的全局变量赋初值
全局对象初始化:
在main之前调用构造函数
传值给main函数:
argc为整数
argv为指针的指针
在执行完main函数后:
执行全局的析构函数
**可以用_onexit 注册一个函数,它会在main 之后执行; **