内联函数(inline)

1.inline

如果使用了inline修饰函数,则该函数称为内联函数。

编译器将使用相应的函数代码替换函数调用。即对于内联代码,程序无需跳到另一个位置处执行代码,然后再跳回来。

因此,内联函数的运行速度比常规函数稍快,但是代价是需要占用更多的内存,因为在有内联函数调用的地方,都是内联函数的代码拷贝。

所以,如果代码执行时间较短,而调用的时间比较长,并且该函数经常被调用,则使用内联函数就可以节省调用时间。

要使用内联函数,必须才需下述措施之一:

1).在函数声明前加上关键字inline

2).在函数定义前加上关键字inline


2.头文件与inline

c/c++可以在头文件中定义函数,但是若在头文件中定义函数,必须加inline修饰定义为内联函数


3.inline与宏

下面是一个计算平方的宏

#define SQUARE(x) x*x

a=SQUARE(3)   结果是  a = 3*3 =9

b=SQUARE(3+1) 结果是 b=3+1*3+1 = 7

a=3 c=SQUARE(a++) 结果是 c=a++*a++=12

只有第一个能正常工作,只有加上括号第二个才能正常工作

#define SQUARE(x) ((x)*(x))
但是第三个仍然不行,应为简单的用后面的替代还是会加两次

但是可以考虑用内联函数

inline int square(int a){return a*a;}
c = square(a++)则可以得出c=9, a=4;



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值