C++ 程序 startup code 相关

来源:互联网 发布:mac显示flash 编辑:程序博客网 时间:2024/06/15 13:37

C++ 程序启动 在进入main()前 会 调用两次 _initterm, 在 main() 结束后 还会调用 两次 _initterm

  • 第一次 _initterm 初始化 C 环境(与多线程有关)
  • 第二次 _initterm 创建 C++ 全局变量, 如果是自定义类型, 会 调用 atexit() 传入 全局对象的析构函数, 注: atexit 内维护的是 栈, 不是队列, 先传入的函数 会 后调用
  • main() 执行
  • 处理 atexit 中的函数
  • 第三次 _initterm do pre terminators
  • 第四次 _initterm do terminators
0 0
原创粉丝点击