什么是函数内联
inline int add(int x, int y)
{
return x + y;
}
int main()
{
int a = 1, b = 2;
int c = add(a, b);
}
在上面的代码中,当 add
被内联时,结果代码将变成这样的代码
int main()
{
int a = 1, b = 2;
int c = a + b;
}
内联函数无处可见,它的主体被内联到调用者的身体中。如果 add
没有内联,则会调用一个函数。必须引起调用函数的开销 - 例如创建新的堆栈帧 ,复制参数,制作局部变量,跳转(丢失引用的位置以及缓存未命中)等。