Re: [問題] 大家常常說的wrapper到底是什麼?
作者: 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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
C_and_CPP 近期熱門文章
11
46
PTT數位生活區 即時熱門文章
26
51