C++之内联函数

C++之内联函数
1. 内联函数

       C++内联函数的编译代码与其他程序代码”内联”起来了。也就是说,编译器将使用相应的函数代码替换函数调用。对于内联代码,程序无需跳到另一个位置处执行代码,再跳回来。       因此,内联函数的运行速度比常规函数稍快,但是代价是需要占用更多内存。
如果程序在10个不同的地方调用同一个内联函数,则该程序将包含该函数代码的10个副本。

       所以,应有选择地使用内联函数。如果执行函数代码的时间比处理函数调用机制的时间长,则节省的时间将只占整个过程的很小一部分。如果代码执行时间很短,则内联调用就可以节省非内联调用使用的大部分时间。另一方面,由于这个过程相当快,因此尽管节省了该过程的大部分时间,但节省的时间绝对值并不大,除非该函数经常被调用。

       要使用这项特性,必须采取下述措施之一:

       (1) 在函数声明前加上关键字 inline;

       (2) 在函数定义前加上关键字inline。

       通常的做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应提供原型的地方。注意:内联函数不能递归。

2. 一个例子
#include <iostream>

inline double square(double x) {return x * x;}

int main(int argc, char const *argv[])
{
    using namespace std;
    double a,b;
    double c = 13.0;

    a = square(5.0);
    b= square (4.5+7.5);
    cout << "a = " << a << " , b = " << b <<"\n";
    cout << "c = " << c;
    cout << ", c square = " << square(c++) << "\n";
    cout << "Now c = " << c << "\n";
    return 0;
}


   转载规则


《C++之内联函数》 赵小亮 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Jupyter Notebook打开默认文件夹以外的文件 Jupyter Notebook打开默认文件夹以外的文件
Jupyter Notebook打开默认文件夹以外的文件 1. Jupyter Notebook默认打开目录        Jupyter启动之后默认打开的是C盘目录,如下图所示:   &
下一篇 
C++之递归 C++之递归
C++之递归 1. 递归介绍       C++函数有一种有趣的特点————可以调用自己(然而,与C语言不同的是,C++不允许main()调用自己),这种功能被称为递归。尽管递归在特定的编程(例如人
2020-01-17
  目录