__attribute__((constructor)) void before()
{
printf("this is main before\n");
}
__attribute__((destructor)) void after()
{
printf("this is main after\n");
}
void main(int argc, char** argv)
{
printf("this is main\n");
}
总结:
main函数执行之前,主要就是初始化系统相关资源:
1.设置栈指针
2.初始化static静态和global全局变量,即data段的内容
3.将未初始化部分的赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容
4.运行全局构造器,估计是C++中构造函数之类的吧
5.将main函数的参数,argc,argv等传递给main函数,然后才真正运行main函数
相关文章:
-
2022-12-23
-
2022-03-08
-
2021-12-13
-
2021-11-27
-
2022-01-12
-
2021-07-31
-
2022-12-23