/*
在main之前,主要是初始化系统相关资源:
1 设置栈指针
2 初始化static静态变量和global全局变量(.data)
3 未初始化的全局和静态变量赋初值(.bss)
4 全局对象静态对象的构造
5 将main的argc,argv等参数传递给main(压栈?),随后执行main
*/
struct Test { // 类同理
Test() {}
~Test() {}
};
Test a1; // 全局对象在main之前构造,在main之后析构
static Test a2; // 静态对象同理
int a3; // 全局变量在main之前进行malloc和初始化,在main之后free
static int a4; // 静态变量同理
int main(int argc, char* argv[]) // 传参再执行main(压栈?)
{
return 0;
}