执行之前:
主要用于初始化系统相关资源
- 设置栈指针
- 初始化静态变量和全局变量。.data段的内容
- 没有初始化的全局变量赋初始值
- 全局对象初始化
- 将main函数的参数传递给main函数,然后才真正运行main函数
- attribute((constructor)) constructor参数让系统执行main()函数之前调用函数
执行之后:
- 执行全局对象的析构函数
- attribute((destructor)) destructor让系统在main()函数退出或者调用了exit()之后,调用我们的函数