2012年9月19日

【转载】参数返回值及NRV优化

摘要: 参数传递如何实现?【实现模型1】引入临时对象,使用拷贝构造函数初始化。然后利用bitwise copy将其拷贝到x0的位置。比如:void foo( X x0 );X xx;foo( xx );改写成X __temp0;__temp0.X::X ( xx );foo( __temp0 );下面是Visual Studio 2010产生的汇编代码:foo(xx);0095147A sub esp,8 ;8是Class X的大小,即在堆栈中划出__temp0的内存地址为(esp-8) 0095147D mov ecx,esp ;将__temp0的地址保存到ecx中,也就是保存this指针到ecx中 阅读全文

posted @ 2012-09-19 20:12 探索超越 阅读(1033) 评论(0) 推荐(0)

导航