说起内联函数,我们一般都会知道它的一些基础知识:比如说内联在实际调用的时候是由编译器以内嵌的方式运行,在内联函数中一般禁止写过于复杂的函数,禁止写循环语句等,但是它的原理是什么呢?
通常的函数调用编译器会有一个寻址的过程,在调用函数时候,编译器会从前调用地址处把内存跳转前的地址记录下来,然后去执行调用函数,待调用函数执行完毕后,再跳转回之前记录下来的内存地址处继续编译。
由上可知,如果一个函数很长的话,内存寻址、跳转的时间和函数本身的执行时间相比已经微不足道,所以就没有必要生命成内联了,并且内联会增加代码的空间消耗。
个人浅见,欢迎大家提出意见。