生前:CRT startup code
看完课程,能够回答一下问题:
- C++进入点是main()嘛?
- 什么代码比main更早执行?
- 什么代码在main结束后执行?
- 为什么上述代码可以如此行为?
- Heap的结构如何?
- I/O的结构如何?、
startup code
main 函数应该由启动代码来调用
在内存管理部分,我们只关注前面两个函数,他们完成指定的内存分配策略。
_heap_init(): 内存heap初始化。内存管理那一节我们已经讲过,是做16个header初始化工作。
_ioinit():IO初始化,malloc分配256k大小(过程很复杂,见内存管理那个部分),用于IO初始化。比如初始化stdin(0)、stdout(1)、stderr(2)等东西(最多分配2048个文件描述符)
参考文章:侯捷C++八部曲笔记(六、C++程序的生前死后)_crt startup code-CSDN博客