本文主要是介绍在c++中普通函数与 内联函数inline的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
们都知道编译的最终产品是可执行程序——— 由一组由机器语言指令组成,在运行程序时,操作系统将这些指令载入到计算机内存中。因此,每一组指令都有一个特定的内存地址。
一.普通函数的调用
a.当代码执行到函数调用指令时,程序将在函数调用后立即存储该指令的地址,同时将参数复制到堆栈中;
b.然后跳到标记函数起点的内存单元当中,执行函数代码,将返回值放回到寄存器当中;
c.跳回到地址被保存的指令处
为了能够对这个执行过程有更加明确的理解,我在这里举个例子:
比如我们在看一篇文章的时候,有个词组的意思我们不理解,这时候我们就需要会去看书下面给的注释,在阅读完注释后我们就会很快的返回的当时正在阅读的地方。这和普通函数在调用过程中的原理非常相似。
因此,在使用普通函数时由于需要来回跳转所以它的执行速度比较慢,特别是需要调用很多次函数时。
二.内联函数的调用
1.如何才能使用内联函数?
a,在函数声明前加上关键字 inline
b.在函数定义前加上关键字 inline
以上两种方法任选其一即可。
2.调用原理
内联函数,顾名思义就是将编译代码和其它代码 “内联” 起来了。所以它在调用的时候是编译器使用相应的函数代码替换函数调用。(这一点和宏替换十分相似)
由于内联代码在执行的时候程序无需进行来回的跳转,所以它的执行速度相对于普通函数能快点;不过它也有自己的缺点,那就是对内存得耗损,如果程序需要在十个地方调用同一个内联函数,那这个程序将会将这个代码拷贝10次
这篇关于在c++中普通函数与 内联函数inline的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!