c 如何 return 一個 struct 呢? 我很好奇, 來看看反組譯的程式碼。
ret_struct_c.asm L27 0x8(%ebp) 就是 ret_struct.c L23 Data da, 透過 ret_struct_c.asm L47 ~ 49 可以看出, compiler 大概轉成 m_ret_struct.c
ret_struct_c.asm L47 -0xc(%ebp) 就是 da 的位址, push 給 ret_data() 就是傳給 ret_data(), 有趣的是我們的 ret_data 並沒有接受參數, 這類似於 return value optimization。
這樣也一篇, 當然阿!
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。