1.什么是内联函数
内联函数,函数前面加关键字inline
inline int sum(int x, int y)
{
return x + y;
}
内联函数在编译的过程中没有函数调用的开销(不生成函数标记,没有压栈等调用过程),直接在调用处展开代码。
注意:写inline是对编译器的建议,编译器在执行的时候会自己判断,发现这个函数不适合做成内联,那么写inline也没用,编译器会当成普通函数执行。
2.内联函数适用情况
像上面示例的函数,如果需要进行多次调用,发现调用时压栈出栈的开销比函数本身的开销还大,那就可以做成内联函数.
在需要进行递归的时候,不能用内联处理,因为递归的深度只有执行的时候知道,编译器在编译阶段不可能未卜先知
3.内敛函数只有在release版本才有用,在debug版本里面当普通函数处理。