[面試] C++ Inline Function & Macro差異

Inline Function寫法

inline int square(int x) {
return x * x;
}

Macro寫法

#define SQUARE(x) ((x) * (x))

若執行

SQUARE(3+2);

因為是文字替代,所以會得到11而不是25

3+2*3+2

差異

基本上macro和inline function都可以省下速度,但Macro在預處理時,直接單純的文字替換,但inline function是在compile階段時,直接取代function。

--

--