内联函数类似于宏(define),起直接替换的作用,但是两者有很大区别,最主要的区别是内联函数采用值传递。

1. 内联函数的意义

为一些简单的函数起直接替换的作用,免得一直需要去访问栈空间(函数)。

2. 适用场合

函数简单,不占内存的情况

3. 特点

值传递,先算值,再代入,区别宏

4. 例子

#define SQUARE(x) x*x

这里是将x*x直接代入

a=SQUARE(1+2);

实际a=1+2*1+2

inline square(double x){

return x*x;

}

a=square(1+2);

实际a=(1+2)*(1+2);

采用的是值传递,这一点和普通函数一样。当然函数可以值传递,也可以址传递,还可以引用传递