C++中的内联函数学习

发布时间 2023-07-13 17:38:19作者: 新西兰程序员

在看C++代码时,发现有inline 这个关键字,放在函数前面.  => 这种函数就是内联函数, 那么,在C++ 中,到底什么是内联函数,以及内联函数是怎么使用的呢

 通常而言,一个C/C++程序的执行过程是这样的:  你可以理解为就是一系列函数的互相调用过程.  这可以看出是一个调用链条, 这个函数调用链条的起点是main(), 也就是说,C++函数一定是从Main()函数开始的,最终自然也还是回到Main()函数。当这个Main()函数执行完(调用完所有函数), 它会返回一个值(比如 return 0). 从而结束整个C++程序

在C++中,当main函数中调用一个函数时,开销分为2部分

第1部分是调用这个函数的开销 => 函数调用本身是有开销的,有时间和空间的开销。 程序在执行一个函数前需要做一些准备工作,需要将实参,局部变量,返回地址和若干寄存器都压入栈中,然后才能执行函数体中的代码; 执行完函数体中的代码,还要清理现场, 将前面压入栈中的数据都出栈,才能接着去执行该函数后面的代码.

第2部分是这个函数本身执行的开销 => 这这个很好理解,函数执行本身,肯定是需要资源开销的

显然,这2部分会有一个balance, 如果函数体代码比较多,函数本身执行时间比较长。那么,第1部分函数调用的时间就可以忽略. 反过来说,如果函数体代码很少,就几条语句,那么相对而言,大部分的时间都会在第1部分函数调用上,这样,第1部分函数调用的开销就值得关注