努力奋斗的骚年!
分类: C/C++
2014-10-12 21:51:47
inline作用:定义为inline的函数在编译时被替代,而不是像一般函数那样是在运行时被调用(会保存上下文)。
inline的产生:函数调用的效率低,每次调用都要保护现场和记忆执行的地址,返回后要恢复现场,按原来保存的地址继续执行,函数调用将会有一定的时间和空间的开销,特别是一些函数体代码不是很大的,又频繁被调用的函数,解决效率问题更为重要。
在程序编译时,编译器将程序中出现的的调用表达式用内联函数的函数体来进行替换。由于在编译时将函数休中的代码被替代到程序中,因此会增加目标程序代码量,进而增加空间开销,而在时间代销上不象函数调用时那么大,可见它是以目标代码的增加为代价来换取时间的节省。