cpp的startup

c++程序的生前死后—–侯捷

  1. 先初始化堆,IO初始化,处理字符串,c初始化,进行入main,退出
  2. SBH: small block heap 小区块堆
  3. heap init startup
    • VC6 如果你要的小于3f8,也就是1016,那我就管理,否则就利用操作系统来进行管理。也就是1024 - 8, 8为上下的cookie。
    • VC10 就不管大小了,所有的都使用heap_alloc_base来实现,这个时候,他就不管大小了。实际上就是包装在了os层面了。
    • heap初始化就是挖出16个header
    • 内存哪里来,小于1k,就是由sbh来分配,大于1k,就交给操作系统
  4. ioinit
    • 任何进入main之前就先分配256字节也就是100h,再加4乘9等于36字节,也就是24h,再加上下cookie共8h, 那么一共就是100h+24h+8h = 12ch 调整到130h
    • 内存的管理核心就是挖一大块进行切割。