C++还提供了许多新的函数特性,使之有别于C语言。新特性包括内联函数、按引用传递变量、默认的参数值、函数重载(多态)以及模板函数。
内联函数
- 内联函数的运行速度比常规函数稍快,但代价是需要占用更多内存。应有选择地使用内联函数。如果执行函数代码的时间比处理函数调用机制的时间长,则节省的时间将只占整个过程的很小一部分。如果代码执行时间很短,则内联调用就可以节省非内联调用使用的大部分时间。比如说,如果函数定义占用多行(假定没有使用冗长的标识符),则将其作为内联函数就不太合适。
- 另外,内联函数不能递归。
- 要使用这项特性,必须采取下述措施之一:
- 在函数声明前加上关键字
inline
; - 在函数定义前加上关键字
inline
。
- 在函数声明前加上关键字
以下这一段对内联函数的解释比较容易理解,码在这里帮大家再理解一遍:
使用函数能够避免将相同代码重写多次的麻烦,还能减少可执行程序的体积,但也会带来程序运行时间上的开销。函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中,最后才跳转到函数内部执行。这个过程是要耗费时间的。另外,函数执行return语句返回时,需要从栈中回收形参和局部变量占用的存储空间,然后从栈中取出返回地址,再跳转到该地址继续执行,这个过程也要耗费时间。总之,使