,以及全局变量等等.这些初始化,都是在ininterm中初始化的,和全局变量初始化的位置一样,如果不太懂,请看.以前博客链接:
建立高级代码,查看其调用栈....代码含义,一开始没有注册的时候, 线性表的头和尾都是一样的位置
当你注册了那么线性表则会增加4个字节存储你注册的函数回调地址....E2函数内部则会调用析构函数,有人会说,为什么不直接将析构注册为函数回调,这样直接调用atexit不就在释放的时候,从后往前依次调用析构的了吗....五.堆中对象识别
高级代码:
MyTest *t = new MyTest ;
Debug下的汇编:
?
new 和malloc是一样的,new是对malloc的一个封装....为什么会这样:
在早期,硬件资源匮乏,内存想重复利用.
所以会有人显示的调用构造(vc6.0中可以)然后显示的调用析构进行管理,示例:
?