内联函数(inline)介绍

本文介绍了内联函数的概念、定义方法及使用注意事项,并通过实例详细解释了如何在类中使用内联函数,帮助读者理解内联函数如何提高程序执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、引入内联函数的原因

     引入内联函数的目的是为了解决程序中函数调用的效率问题。一般情况下,函数调用会带来降低效率的问题,因为调用函数时实际上是将程序执行顺序转移到函数内存中所在的某个地址。将函数的程序内容执行完后,再转回到转去执行该函数前的地方。函数调用会有一定的时间和空间方面的开销,会影响效率。引入内联函数就是为了解决这一问题。

      在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行更换,这样不会产生转回转去的问题,但会增加目标程序的代码量,进而增加空间的开销可见,它是以目标代码的增加为代价来换取时间的节省(空间换时间


2、内联函数的定义方法

     在函数定义的前面加上inline关键字。

    eg: inline int max (int a, int b){

              return (a > b? a: b);

          }


3、使用内联函数的注意事项

(1)在内联函数中不许与使用循环语句开关语句递归调用,否则按非内联函数处理

(2)内联函数的定义必须出现在内联函数第一次调用之前

(3)在类结构中所有在类说明内部定义的函数都是内联函数


4、类中的内联函数

     类的成员函数分为内联函数外联函数内联函数是指那些定义在类体内的成员函数。说明在类体内,定义在类体外的成员函数叫做外联函数

      内联函数与带参数的宏定义执行效率是一样的,但是内联函数要优于宏定义,因为内联函数遵守函数的类型和作用与规则。

     让外联函数变成内联函数只需在函数头前面加上 inline 关键字

举一个例子:

class A

{

 public:

    A( int x, int y)//内联函数

    { X = x; Y = y};

  

    int getX ()//内联函数

    { return X;}

    

    int getY()//内联函数

    {return Y;}

    

    int sum();//外联函数

    

    int max();//外联函数

    

private:

    int X,Y;

};


int A::sum(){


    return(X + Y);


}


inline int A::max(){ // 加了 inline 后变成了内联函数


    return (X > Y ? X : Y);


}




转载于:https://my.oschina.net/u/1245365/blog/177759

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值