楼主:
gecer (gecer)
2017-06-18 19:08:23As the title , 小弟一直不解 Macro 跟function的差异 google搜寻到的仅是macro 是
preprecessor 不用定义type 小弟想更进一步了解 macro 跟function 对compiler会不
一样嘛?
macro只是简写的感觉,preprocess过后会长回去
Macro只是纯文字替换。Function则是进行函式呼叫,会建立call stack,进入函式时push参数列,离开函式时pop并且return 回传值,program counter回到Return Address。两者是不同的。
作者: jaid (jaid) 2017-06-18 20:42:00
macro由preprocessor处理,而不是compiler
作者: purpon (小强) 2017-06-19 23:37:00
Macro 只是文字替换吧。如果marco里面有包函式,还是会有call stack
作者:
CoNsTaR ((const *))
2017-06-20 01:57:00C/C++ 的宏可以看成是一种 inconsistant 的 metaprogramminglanguage
Macro怎么处理 查一下gcc -E就知道了相信大多数人看到了输出以后都会恍然大悟 (?)
作者:
CoNsTaR ((const *))
2017-06-20 23:57:00MOONRAKER thank you