宏函数的缺陷:
内联函数可以优化
#define MYADD(a,b) a+b//宏函数
inline int myadd(int a, int b)//内联函数
{
return a + b;
}
void test01()
{
int a = 10;
int b = 20;
//int c = MYADD(a,b)*5;//a+b*5 替换发生在预处理阶段
int c = myadd(a, b) * 5;//(a+b)*5替换发生在编译阶段 也和宏函数一样不会有函数调用的开销
cout << c << endl;
}
#define COMPARE(a,b) a<b?a:b
inline int compare(int a, int b)
{
return a < b ? a : b;
}
void test02()
{
int a = 1;
int b = 5;
int c = COMPARE(++a, b);//宏函数
//int c = compare(++a, b);//内联函数
cout << c << endl;
}
int main()
{
test02();
return 0;
}