内联函数与其他函数的区别在于:内联函数在调用时发生控制转移,而是在编译时将函数体嵌在每一个调用处。优点:这样就节省了参数传递,控制转移等开销。
定义方式:
inline 类型说明符 函数名(含类型说明的形参表)
{
语句序列;
}
需要注意的是在现代编译器中没有用inline修饰的函数也可能被便以为内联。通常情况下,内联函数应该是比较简单的函数,结构简单,语句少。如果将复杂函数定义为内联函数会造成代码膨胀,增大开销。这时候,编译器一般会将其自动转换为普通函数处理。
此外,还要注意有些函数是无法以内联函数方式处理的。如对自身直接递归调用的函数。
内联函数应用举例:
#include <iostream>
using namespace std;
const double PI=3.141592653527993238;
//内联函数,根据圆的半径计算面积
inline double calArea(double radius){
return PI*radius*radius;
}
int main() {
double r=3.0; //圆的半径为r
//调用内联函数求圆的面积,编译此处被替换为calArea函数体语句
double area=calArea(r);
cout<<area<<endl;
return 0;
}
//运行结果:28.2743