作者CsAtPccu (站慄時空)
看板C_and_CPP
標題[問題] 有關巨集的問題
時間Mon Jul 6 22:01:52 2009
最近參加一個考試,其中有一題題目如下
下列何者不是巨集處理器的優點
1. 減少程式長度
2. 可重複使用
3. 提升程式的執行效率
4. 使程式容易瞭解
答案公佈為 3
但我認為是 1
我的看法如下:
巨集展開來後,程式會比用 function call 還大
因為不是用 function call,所以效率會比較好
不知是我的認知有錯還是答案是錯的,請問各位的看法如何 ?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.214.59
1F:推 zlw:其實我想選4...四個都可以是優點吧 07/06 22:06
2F:推 Ebergies:這答案應該可以算考試的標準答案 07/06 22:12
3F:→ Ebergies:就算你寫 function 也會被 inline, 所以效率沒差 07/06 22:12
可是 inline 和 register 兩個 keywords 不是只有建議 compiler 嗎
compiler採不採用就要看裡面的演算法,不一定寫了就會採用
4F:→ Ebergies:而且 "程式長度" 一般是指 code 長度, 即還沒展開前 07/06 22:13
我以為 program 就是程式,source code 就是程式碼
5F:→ su31o4gj83:我也會從1跟3挑一個, 使用巨集是可以減少程式長度 07/06 22:14
6F:→ su31o4gj83:但我不確定是否可以增加效率 07/06 22:14
7F:→ su31o4gj83:我也是想到inline可以提升效率, 但不清楚可以好多少 07/06 22:17
8F:推 Fenikso:我覺得他比較的基準不是巨集和function, 07/06 22:28
9F:→ Fenikso:是巨集和手動copy&paste 07/06 22:28
10F:→ Fenikso:所以不影響效率 07/06 22:28
你說的是 coding 的速度嗎
但我以為 3 是指程式跑起來的 performance
※ 編輯: CsAtPccu 來自: 218.160.214.59 (07/06 22:34)
11F:推 Fenikso:是跑起來的performance啊, 但是不是macro跟function比 07/06 22:35
不好意思,中文造詣不好,可以麻煩解釋一下 "是巨集和手動copy&paste" 的意思:)
※ 編輯: CsAtPccu 來自: 218.160.214.59 (07/06 22:38)
12F:推 Fenikso:我回個文好了XD 07/06 22:46
13F:→ CsAtPccu:謝謝 07/06 22:47
謝謝這位網友回文
但如果以題目未說明的情況下
我把"程式"這詞當作是經過編譯處理產生出來的檔案應該也是可以
所以這題題目有語意不清!?
※ 編輯: CsAtPccu 來自: 218.160.214.59 (07/06 23:04)
14F:→ james732:我也想選4耶...總覺得巨集好難懂 orz 07/07 02:56
15F:推 ledia:用英文出題就不會有這麼多的模糊不清了 中文很曖昧的 XD 07/07 03:15