内联函数代替宏代码块
1 内联函数必须和函数体实现写在一起
2 直接将函数体放入函数调用的地方
3 没有压栈出栈等操作
4 编译器不一定接受内联函数的请求
5 编译器可能自动把函数优化成内联函数
6 内联函数中没有for循环
#define MYFUNC(a,b) ((a)<(b)?(a):(b))
inline int myfunc(int a, int b) {
return a < b ? a : b;
}
int main() {
int a = 1;
int b = 3;
//int c = MYFUNC(++a, b); // ==>宏展开 ((++a)<(b)?(++a):(b)) a=2,b=3,c=3
int c = myfunc(++a, b); //a=2,b=2,c=2
cout << "a=" << a << endl;
cout << "b=" << b << endl;
cout << "c=" << c << endl;
return 0;
}