编译的时候,C++编译器把这些源码编译成机器语言指令,运行程序的时候,操作系统将这些指令加载的内存中,所以每条指令都有它的内存地址,然后计算机逐步执行这些指令,如果遇到函数,就跳转到函数的地址去执行它,执行结束了再跳回来。调用多少次就要跳转多少次。
跳转到函数是有代价的,主要有三个方面:
1 )需要保存原来指令的内存地址
2)把实参拷贝到堆栈
3)还有函数的返回值也需要加入寄存器中
这么来回跳跃需要一定的开销,C++提供 了另一种选择,声明和定义函数的时候,在前面加上inline关键字,就成了内联函数
编译的时候inline代码将嵌入到程序中,调用几次,就嵌入几次。