精華區beta C_and_CPP 關於我們 聯絡資訊
我最近在翻舊課本 C: How to Program 2nd 書中有一句 使用巨集取代函式,可去除函式呼叫的額外負擔 請問原因為何? 是否簡單的函式 利用巨集來實現 會更加有效率? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.223.235.118
ckclark:1. 因為他是在compile之前的preprocessor 02/03 17:30
ckclark: 只是字串取代 02/03 17:30
ckclark:2. 巨集有他的缺點在 就因為是字串取代 02/03 17:31
ckclark: #define SQR(x) ((x)*(x)) 代入SQR(i++)就會有問題 02/03 17:31
ckclark: 效率我想是有的 02/03 17:32
freesamael:很簡單的function編譯器在最佳化的時候就會展開了 02/03 18:09
freesamael:你也可以用inline關鍵字"建議"編譯器展開特定function 02/03 18:10