[問題]Macro & function的差異

作者: gecer (gecer)   2017-06-18 19:08:23
As the title , 小弟一直不解 Macro 跟function的差異 google搜尋到的僅是macro 是
preprecessor 不用定義type 小弟想更進一步了解 macro 跟function 對compiler會不
一樣嘛?
作者: a1u1usul3 (Q-Max)   2017-06-18 20:25:00
macro只是簡寫的感覺,preprocess過後會長回去
作者: cuteSquirrel (松鼠)   2017-06-18 20:35:00
Macro只是純文字替換。Function則是進行函式呼叫,會建立call stack,進入函式時push參數列,離開函式時pop並且return 回傳值,program counter回到Return Address。兩者是不同的。
作者: jaid (jaid)   2017-06-18 20:42:00
macro由preprocessor處理,而不是compiler
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-06-19 10:54:00
2-3樓的解釋你可以背下來 不是標準也非常接近了
作者: purpon (小強)   2017-06-19 23:37:00
Macro 只是文字替換吧。如果marco裡面有包函式,還是會有call stack
作者: CoNsTaR ((const *))   2017-06-20 01:57:00
C/C++ 的巨集可以看成是一種 inconsistant 的 metaprogramminglanguage
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-06-20 10:12:00
inconsistent.
作者: Killercat (殺人貓™)   2017-06-20 11:13:00
Macro怎麼處理 查一下gcc -E就知道了相信大多數人看到了輸出以後都會恍然大悟 (?)
作者: CoNsTaR ((const *))   2017-06-20 23:57:00
MOONRAKER thank you

Links booklink

Contact Us: admin [ a t ] ucptt.com