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

 

本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!

posted @ 2015-05-18 22:02  帅的打破吉尼斯  阅读(803)  评论(0编辑  收藏  举报