看板 C_and_CPP 關於我們 聯絡資訊
As the title , 小弟一直不解 Macro 跟function的差異 google搜尋到的僅是macro 是 preprecessor 不用定義type 小弟想更進一步了解 macro 跟function 對compiler會不 一樣嘛? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.174.37 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1497784106.A.4F3.html
a1u1usul3: macro只是簡寫的感覺,preprocess過後會長回去 06/18 20:25
cuteSquirrel: Macro只是純文字替換。 06/18 20:35
cuteSquirrel: Function則是進行函式呼叫,會建立call stack,進入 06/18 20:39
cuteSquirrel: 函式時push參數列,離開函式時pop並且return 回傳值 06/18 20:39
cuteSquirrel: ,program counter回到Return Address。 06/18 20:39
cuteSquirrel: 兩者是不同的。 06/18 20:39
jaid: macro由preprocessor處理,而不是compiler 06/18 20:42
MOONRAKER: 2-3樓的解釋你可以背下來 不是標準也非常接近了 06/19 10:54
purpon: Macro 只是文字替換吧。如果marco裡面有包函式,還是會有c 06/19 23:37
purpon: all stack 06/19 23:37
CoNsTaR: C/C++ 的巨集可以看成是一種 inconsistant 的 metaprogra 06/20 01:57
CoNsTaR: mming 06/20 01:57
CoNsTaR: language 06/20 01:57
MOONRAKER: inconsistent. 06/20 10:12
Killercat: Macro怎麼處理 查一下gcc -E就知道了 06/20 11:13
Killercat: 相信大多數人看到了輸出以後都會恍然大悟 (?) 06/20 11:14
CoNsTaR: MOONRAKER thank you 06/20 23:57