摘要: 也是最近被问的一个问题,全局变量在哪个阶段初始化?这个问题到没被问倒,全局变量在mainCRTStartup之后main调用之前,在该阶段应用会完成堆内存的申请(记得哪里还看到如果改了EntryPoint需要自己进行堆内存的申请和管理).而全局变量也正是在该阶段完成的初始化.然后又被问,那么全局变量在哪里被释放?回答是在应用退出之后main函数退出之后,这个回答也没问题.基本上算是正确的.但是回头自己仔细想想,那么全局变量又是怎么样被初始化的呢?还真的有点不太清楚,所以出于好奇,今晚开始细细研究研究!首先写了一段代码如下://头文件class ClassSizeRes{public: Clas 阅读全文
posted @ 2012-05-03 23:11 Yarkin 阅读(9606) 评论(0) 推荐(0) 编辑
摘要: 许久没有回头研究c++的一些概念了,突然被一道题考住了大体上如下class a{}//...a aobj;size_t aobjSize = sizeof(aobj);//问aobjSize等于多少?个人以为aobjSize=4;毕竟需要有地址空间来储存,而已一般来说每一个对象都有一个this指针所以虽然没有任何成员变量但是仍然应该为4事实并非如此,写了一下代码发现为1而且反汇编之后代码如下...00031758 mov dword ptr [ebp-4],0 size_t dwSize = sizeof(clsObj);0003175F mov dword ptr [eb... 阅读全文
posted @ 2012-05-03 20:26 Yarkin 阅读(346) 评论(0) 推荐(0) 编辑