本次更新的是内联函数,内联函数的出现主要是为了解决代码效率问题,也就是为了解决一些频繁调用的小函数大量消耗栈空间的问题。那么我们就来讲一下inline内联函数,本次主要通过用内联函数来对比普通函数进行讲解。
inline内联函数和普通函数的区别
开篇我们提到了内联函数能解决一些频繁调用小函数而造成大量消耗栈空间的问题,那么这里就有一个区别。
普通函数调用的时候,会造成栈空间的消耗,而内联不会。
我们通常把函数的调用过程称作函数的调用开销,函数的调用开销有参数压栈、函数栈帧的开辟和退回的过程。
inline内联函数:在编译过程中,就没有函数的调用开销,在函数的调用点直接把函数的代码进行展开处理,相当于把函数的代码全部复制过来,而不是普通函数那样跳转。同样内联函数也不会生成函数符号。
使用关键字inline只是对编译器发出建议,把这个函数设定为内联函数,而不是用了inline,这个函数就是内联函数了,比如递归函数不会被处理为内联函数,函数的代码过多,也不会被处理为内联函数