内联函数@C++
关键字 inline 声明一个内联函数
内联函数的作用是大致可以理解为 使用函数体内的语句去替换函数调用表达式
为什么这么做
有的函数执行很简单 而调用返回花费的时间比运行该函数的时间还要多,因此使用内联函数省去调用返回的开销
定义内联函数 一定要求该函数比较简单具体要求是
1.内联函数体内不能有循环和switch
2.定义出现在被调用之前
3.不能进行异常接口声明(暂时不知道这个概念没关系,以后会学到)
另外 inline是一个对编译器的建议 并非所有带inline的函数编译器都把它当作inline,编译器会根据具体情况做出选择
而对于一些比较简单的函数,编译器可能自动的把它作为inline
1 #include<iostream> 2 using namespace std; 3 const double PI = 3.1415926; 4 5 inline double calArea(double radius) 6 { 7 return PI * radius*radius; 8 } 9 10 int main() 11 { 12 double r = 3.0; 13 double area = calArea(r); 14 cout << area << endl; 15 return 0; 16 }
以上定义了一个内联函数
然后编译器并不会去调用它,用到它的时候,编译器采用某种方法,把它以某种方式放在主函数中(类似于辅助粘黏),直接使用,避免了调用与返回所花去的时间
用内联函数 既可以有函数的模块化 使用时直接用即可,不用重新定义,又可以拥有速度,不需要调用与返回