[问题]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