c++相对于C提供的新的函数特性

新特性包含内联函数、按引用传递变量、默认的参数值、函数重载(多态) 以及模板函数

内联函数:是c++为了提高程序运行速度所做的一项改进。常规函数与内联函数的区别不在于编写方式,而在与C++编译器如何将他们组合到程序中。

程序执行函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(为此保留的内存块),跳到标记函数起到的内存单元,执行函数代码(也许还需将返回值放入到寄存器中),然后调回到地址被保存的指令处。来回跳跃并记录跳跃位置需要一定的开销。

内联函数的编译代码与其他程序代码“内联”起来了。即:编译器使用相应的函数代码替换函数调用。 程序无需跳转,但是代价是:需要更多的内存。 如果程序在10个不同的地方调用同一个内联函数,改程序将包含该函数的10个代码拷贝。

如果执行函数代码的时间比处理函数调用机理的时间长,则所节省的时间很少,则不选择内联函数。通常,如果函数定义占用多行,则将其作为内联函数就不太合适。

在函数声明和定义前添加: inline。

引用变量:引用是已定义的变量的别名。引用变量的主要用途是用作函数的参数,通过将引用变量用作参数,函数将使用原始数据,而不是拷贝。

引用与指针的差别:必须在声明引用时将其初始化。而不像指针那样,先声明,再赋值。 引用一旦被初始化,便不能改变其指向。、

引用经常被用作函数参数,是的函数中的变量名成为调用程序中的变量的别名,这种传递参数的方法称为按引用传递。C++新增的这项特性是对C的超越,C只能按值传递。

临时变量、引用参数和const:如果实参与引用参数不匹配,C++将生成临时变量。现在,仅当参数为const引用时,C++才允许这样做,但这是一种新的限制。

应尽可能使用const:将引用参数声明为常量数据的引用的理由有3条:

  1. 使用cosnt 可以避免无意中修改数据的编程错误
  2. 使用const 使函数能够处理const 和非const类型实参,否则只能接受非const 数据。
  3. 使用const 引用使函数能够正确生成并使用临时变量。

引用非常适合用于结构和类。

是否应使用引用的两个依据:程序员能够修改调用函数中的数据对象;通过传递引用而不是整个数据对象,可以提高程序的运行速度。原文链接: https://www.cnblogs.com/babysunnie/p/3198538.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/96308

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午3:37
下一篇 2023年2月10日 上午3:37

相关推荐