Re: [问题] 为什么函式可以传出CLASS

楼主: descent (“雄辩是银,沉默是金”)   2016-06-20 18:58:39
compiler 大概会转成这样:
void fun(String *s)
{
String str="abc";
*s = str;
}
void main()
{
String strM;
fun(&strM);
}
有点像 return value optimization
补充了一篇 blog
http://goo.gl/HTYNaj
※ 引述《ducksky (鸭舞九天)》之铭言:
: String fun()
: {
: String str="abc";
: return str;
: }
: main
: {
: String strM=fun();
: }
: 请问上面的作法为何可行?
: 在fun()内的str不是区域变量吗?
: 生命周期应该再函式结束就消失不是吗?
作者: testPtt (测试)   2016-06-20 19:52:00
不会帮你转这个 会用call mov ret去凑
作者: Sex5F (HTC)   2016-06-21 00:00:00
我也不会...跪求大师...都是compiler-> printf ->修改
作者: suhorng ( )   2016-06-22 17:39:00
这样转好怪..

Links booklink

Contact Us: admin [ a t ] ucptt.com