一、宏函数
- 运行时首先进行的是替换,然后在执行代码
- 由于以上特性,需要保证运算的完整性。(加上括号表示运算顺序)
- 使用场景:频繁使用且短小的函数,可封装成宏函数
- 优点:以空间换时间
#define add_1(x,y) x+y // 有bug
#define add_2(x,y) ((x)+(y)) // 全部括上括号,则不会出现bug
int a = 10,b = 20;
cout << add_1(a,b)*20 << endl; // 结果是410
cout << add_2(a,b)*20 << endl; // 结果是600