[問題] 有關巨集的問題

看板C_and_CPP (C/C++)作者 (站慄時空)時間16年前 (2009/07/06 22:01), 編輯推噓6(609)
留言15則, 7人參與, 最新討論串1/3 (看更多)
最近參加一個考試,其中有一題題目如下 下列何者不是巨集處理器的優點 1. 減少程式長度 2. 可重複使用 3. 提升程式的執行效率 4. 使程式容易瞭解 答案公佈為 3 但我認為是 1 我的看法如下: 巨集展開來後,程式會比用 function call 還大 因為不是用 function call,所以效率會比較好 不知是我的認知有錯還是答案是錯的,請問各位的看法如何 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.214.59

07/06 22:06, , 1F
其實我想選4...四個都可以是優點吧
07/06 22:06, 1F

07/06 22:12, , 2F
這答案應該可以算考試的標準答案
07/06 22:12, 2F

07/06 22:12, , 3F
就算你寫 function 也會被 inline, 所以效率沒差
07/06 22:12, 3F
可是 inline 和 register 兩個 keywords 不是只有建議 compiler 嗎 compiler採不採用就要看裡面的演算法,不一定寫了就會採用

07/06 22:13, , 4F
而且 "程式長度" 一般是指 code 長度, 即還沒展開前
07/06 22:13, 4F
我以為 program 就是程式,source code 就是程式碼

07/06 22:14, , 5F
我也會從1跟3挑一個, 使用巨集是可以減少程式長度
07/06 22:14, 5F

07/06 22:14, , 6F
但我不確定是否可以增加效率
07/06 22:14, 6F

07/06 22:17, , 7F
我也是想到inline可以提升效率, 但不清楚可以好多少
07/06 22:17, 7F

07/06 22:28, , 8F
我覺得他比較的基準不是巨集和function,
07/06 22:28, 8F

07/06 22:28, , 9F
是巨集和手動copy&paste
07/06 22:28, 9F

07/06 22:28, , 10F
所以不影響效率
07/06 22:28, 10F
你說的是 coding 的速度嗎 但我以為 3 是指程式跑起來的 performance ※ 編輯: CsAtPccu 來自: 218.160.214.59 (07/06 22:34)

07/06 22:35, , 11F
是跑起來的performance啊, 但是不是macro跟function比
07/06 22:35, 11F
不好意思,中文造詣不好,可以麻煩解釋一下 "是巨集和手動copy&paste" 的意思:) ※ 編輯: CsAtPccu 來自: 218.160.214.59 (07/06 22:38)

07/06 22:46, , 12F
我回個文好了XD
07/06 22:46, 12F

07/06 22:47, , 13F
謝謝
07/06 22:47, 13F
謝謝這位網友回文 但如果以題目未說明的情況下 我把"程式"這詞當作是經過編譯處理產生出來的檔案應該也是可以 所以這題題目有語意不清!? ※ 編輯: CsAtPccu 來自: 218.160.214.59 (07/06 23:04)

07/07 02:56, , 14F
我也想選4耶...總覺得巨集好難懂 orz
07/07 02:56, 14F

07/07 03:15, , 15F
用英文出題就不會有這麼多的模糊不清了 中文很曖昧的 XD
07/07 03:15, 15F
文章代碼(AID): #1AKWFHpE (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AKWFHpE (C_and_CPP)