Re: [問題] 為什麼函式可以傳出CLASS
看板C_and_CPP (C/C++)作者descent (「雄辯是銀,沉默是金」)時間9年前 (2016/06/20 18:58)推噓1(1推 0噓 2→)留言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
06/20 19:52, 1F
→
06/21 00:00, , 2F
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
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章