Re: [問題] 大家常常說的wrapper到底是什麼?

看板C_and_CPP (C/C++)作者時間5年前 (2019/09/20 13:14), 5年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
作者: ando5566 (販賣夢想的人) 看板: C_and_CPP 標題: Re: [問題] 大家常常說的wrapper到底是什麼? 時間: Fri Sep 20 13:14:45 2019 這個簡單, 基本上rapper的定義就是唱rap的歌手, 我們就尊稱為rapper。 不好意思弄錯了@@ 以下個人觀點: wrapper就是一個API/function, wrapper的用途就是把global or member變數return出去, 甚麼其他事都不做。 那為什麼不讓API使用者直接取用這個變數呢? 估計是一個封裝的概念, 我不想讓別人知道這個變數是誰, 因為我只想供他人取值, 不打算供他人改值。 探討: C++裡如果我的wrapper寫 int& className::access_value() { return gobal_val; } 使用者可透過呼叫該函式改值, 那還稱得上是一個wrapper嗎? 我也不確定。 另外, 在embedded系統如mcu的開發, 個人看過有人喜歡作wrapper。 但後續面對code size shrink的時候, 這些wrapper都會被拿掉的。 畢竟call一個function是有成本的。 至少要 0.push (program counter + 1) 1.jump to function address 2.push base-pointer 3.stack-pointer assigned to base-pointer 4.base-pointer assigned to stack-pointer 5.pop value to base-pointer 6.jump return (pop (pc+1) then jump back) 不論在效率或code size上都會受到負面影響, 故底層的開發跟PC software不同, 個人不建議使用wrapper。 ※ 引述《OfficeGL (妤欣)》之銘言: : 網路上查詢好久,可能我不是本科系的關係 : 很難理解這個是什麼? : 不知道是不是所謂的ADT概念呢 : 還是就單純API的意思? : 這邊開始好抽象 : 先謝謝大家了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.74.156.241 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1568956487.A.067.html ※ 編輯: ando5566 (203.74.156.241 臺灣), 09/20/2019 13:17:24 ※ 編輯: ando5566 (203.74.156.241 臺灣), 09/20/2019 13:22:15
文章代碼(AID): #1TX6171d (C_and_CPP)
文章代碼(AID): #1TX6171d (C_and_CPP)