C++内联函数
1. 内联函数的定义
内联函数在定义时与普通函数基本一致,只是在函数值的类型前加”inline“关键字,定义方法:
inline 函数值的类型 函数名 (形参及其类型列表)
{ 函数体 }
本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!
2. 内联函数与普通函数的区别和联系
- 定义内联函数时增加了 inline 关键字;
- 两者在程序中调用的方式和方法相同;
- 当程序调用一个内联函数时,将该函数的代码直接插入到调用点执行。所以,调用过程中不存在程序流程的跳转和返回问题;普通函数反之;
- 从调用机理看,内联函数可以加快程序代码的执行速度和效率并减少调用开销,但是增加了程序代码。
3. 内联函数的限制
- 内联函数的函数体内不能含有复杂的结构控制语句,如果含有,则编译程序将该函数视该函数同普通函数那样产生函数调用代码;
- 递归函数不能被用做内联函数;
- 内联函数中不能说明数组;
- 内联函数一般适合于只有1~5行语句的小函数。
例题:定义一个求两个整数中较小值的函数min(),要求定义成内联函数,然后在main函数中进行调用。
1 #include<iostream> 2 using namespace std; 3 4 inline int min(int a, int b){ return a<b?a:b;} 5 6 int main() 7 { 8 int a=2; 9 int b=7; 10 int c=4; 11 cout << "a,b:" << min(a,b) << endl; 12 cout << "b,c:" << min(b,c) << endl; 13 cout << "c,a:" << min(c,a) << endl; 14 return 0; 15 } 16 17 //菜鸟,求大家批评指教,代码编写习惯和规范等等!!!谢谢!!!
运行结果如下:
a,b:2
b,c:4
c,a:2
本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!