宏函数
预处理阶段替换
#define ADD(a,b) a+b
void test() {
int a = 10;
int b = 20;
int c = ADD(a,b);
cout << c << endl;
}
int main()
{
test();
}
内联函数
空间换时间
内联函数不会像普通函数一样跳转,程序中用到几次,就会复制几份出来,执行时间缩短,占用空间变长。
内联函数会在编译阶段进行替换,并且不会像宏函数一样容易出错
inline
内联函数只是建议编译器做成内联函数,编译器不一定接受。较为复杂的函数不能作为内联函数。
//编译阶段替换
inline int add(int a,int b) {
return a + b;
}
void test() {
int a = 10;
int b = 20;
int c=add(a,b);
cout << c << endl;
}
int main()
{
test();
}
类的成员函数默认会变成内联函数