C++Primer学习笔记(第八章)函数探幽

(一)内联函数

编译过程最终是由一组机器指令组成的,每条指令都有一个地址,随后计算机逐步执行这些指令。执行指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈,跳到标记函数起点的内存单元,执行函数代码,然后跳到地址被报讯的指令处。

内联函数便是将编译代码将其它代码内联起来,将相应的函数代码替换函数调用,对于内敛代码,程序无需跳到另一个位置执行代码,这样节约了时间,但是增加了内存。需要在函数声明前增加关键字inline

eg8.1:

#include <iostream>

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

using namespace std;

int main(int argc, const char * argv[]) {

    // insert code here...

    

    double a,b;

    double c=13.0;

    

    a=square(5.0);

    b=square(4.5+7.5);

    

    cout<<"a="<<a<<",b="<<b<<endl;

    cout<<"c="<<c<<endl;

    cout<<",c square="<<square(c++)<<endl;

    cout<<"c="<<c<<endl;

  //  std::cout << "Hello, World!\n";

    return 0;

}

内联与宏:

内联函数也是按照值来传递参数的,但是宏不能按值传递参数

#define SQUARE(x)((x)*(x))

eg:#define SQUARE(c++);会将c递增两次。

(二)引用变量

猜你喜欢

转载自blog.csdn.net/honry55/article/details/80059850