inline内联函数

来源:互联网 发布:php支付宝接口开发教程 编辑:程序博客网 时间:2024/05/29 02:10

inline函数的由来

 

首先,inline函数也是一种函数,那么我们首先讲讲函数的作用?在现实生活中如果我们自己想单独完成某项大的工作的话几乎是不可能的,肯定会需要其他人的帮助,我们会告诉帮助我们的人我们想要什么结果,而帮助我们的人到底怎么做我们不管,只要他能够给我们想要的结果就行了。在编程中呢函数就是帮助者的作用,它使得编程开发人员只需要关心函数的功能及如何使用,而不用去关心函数的内部到底是怎么实现的。但是计算机中,函数的调用是一系列的过程,在你的程序运行中如果调用了其他函数,那么你的程序会转移到被调用函数的内存地址,而且在调用之前需要保护现场(也就是你在调用其它函数前你的程序运行的情况)以及调用之前程序的运行地址(否则被调用函数执行完之后不知道返回到哪了,那不是白干了吗?),这都是依靠栈来完成的,在被调用函数执行完成后,首先恢复现场,并从保存的程序运行地址继续执行程序。我们可以看到函数调用是一系列的过程,如果程序中频繁的出现函数调用,那么肯定会影响程序的效率。为了解决这一问题,inline函数出现了。

 

首先呢,如果你的程序在某处调用一个inline函数,那么在你的程序编译时,编译器会自动将内联函数的函数体嵌入到你的代码中,从而避免了函数调用的开销。然而这会使得我们的目标代码增加,如果你的inline函数非常庞大,而且调用非常频繁,后果会更加严重,所以呢一般inline函数适合用于体积小而且又频繁调用的函数。需要注意的是,内联函数的函数体不能含有循环、条件、选择等复杂结构,否则就不能作为内联函数了。

0 0