什么是函数内联

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 没有内联,则会调用一个函数。必须引起调用函数的开销 - 例如创建新的堆栈帧 ,复制参数,制作局部变量,跳转(丢失引用的位置以及缓存未命中)等。