Re: [問題] 為什麼函式可以傳出CLASS

看板C_and_CPP (C/C++)作者 (「雄辯是銀,沉默是金」)時間9年前 (2016/06/20 18:58), 9年前編輯推噓1(102)
留言3則, 3人參與, 最新討論串2/2 (看更多)
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不是區域變數嗎? : 生命週期應該再函式結束就消失不是嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.98.177.194 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1466420322.A.98D.html

06/20 19:52, , 1F
不會幫你轉這個 會用call mov ret去湊
06/20 19:52, 1F

06/21 00:00, , 2F
我也不會...跪求大師...都是compiler-> printf ->修改
06/21 00:00, 2F

06/22 17:39, , 3F
這樣轉好怪..
06/22 17:39, 3F
※ 編輯: descent (175.98.177.130), 06/23/2016 19:47:25
文章代碼(AID): #1NPynYcD (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1NPynYcD (C_and_CPP)