Re: [問題] 有關巨集的問題

看板C_and_CPP (C/C++)作者 (ばかちーは俺の嫁)時間16年前 (2009/07/06 22:56), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《CsAtPccu (站慄時空)》之銘言: : 最近參加一個考試,其中有一題題目如下 : 下列何者不是巨集處理器的優點 : 1. 減少程式長度 : 2. 可重複使用 : 3. 提升程式的執行效率 : 4. 使程式容易瞭解 : 答案公佈為 3 : 但我認為是 1 : 我的看法如下: : 巨集展開來後,程式會比用 function call 還大 : 因為不是用 function call,所以效率會比較好 : 不知是我的認知有錯還是答案是錯的,請問各位的看法如何 ? 以下全部是我的猜測(汗 首先, 要講優點一定要有個對照組 你假設對照組是function call 但是這題並不是要你拿macro跟function比, 因為macro跟function其實差不多..根本沒辦法選 要比較的是用macro不用macro 什麼意思呢? 這是用macro的版本: #define f(x) ((x)*(x)) int main() { cout << f(1) << ' ' << f(2) << endl; } 這是不用macro的版本: int main() { cout << ((1)*(1)) << ' ' << ((2)*(2)) << endl; } 這樣一比就會發現 1. 不用macro的code的確變長了 (x的..我根本在睜眼說瞎話XD) 2. macro可以重複使用 3. 效率不變, 經過preprocessor後兩段code是一樣的 4. 大概吧...(汗) 答案是3. -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.186.66 ※ 編輯: Fenikso 來自: 220.133.186.66 (07/06 23:00)

07/06 23:00, , 1F
謝謝回答
07/06 23:00, 1F

07/07 09:34, , 2F
只好推這篇 lol
07/07 09:34, 2F
文章代碼(AID): #1AKX2jkP (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1AKX2jkP (C_and_CPP)