内联函数:编译器将函数代码替换函数调用,省去函数调用带来的时间和空间开销,增加代码段内存开销。
适用于:函数调用的时间代价高于函数执行所需的时间代价,且函数被频繁调用,代码简短。
定义与声明:
1> 函数声明前加关键字 inline,一般省略原型声明
2> 函数定义前加关键字 inline
注意:内联函数不能递归
内联与宏:内联函数可以传递参数,宏则是进行文本替换
例:
1> inline double square(double x) {return x*x; }
2> #define SQUARE(X) X * X
square(1+2) 结果与 SQUARE(1+2)是否相等?哪个结果是正确的呢?