关键字inline

关键字——inline

inline关键字的前世

个人理解,C++中inline关键字的出现可能与#define宏定义有关(define不是关键字)。因为#define宏定义在C语言中起到替换作用的,它的优点是:

  • 1,可以提高程序的可读性,若程序中多处用到了某一段代码时可以使用宏替换,当这段代码出错时方便修改。
  • 2,由于时直接替换,从而减少了系统的开销,提高了运行效率。 
    它也是有缺点的:
  • 1,增加代码量。
  • 2,由于是代码直接替换,并不会检查参数是否合法,替换时容易出错。
  • 3,出错不能调试宏。
今生……

inline是C++相对于C所独有的关键字,它的作用和C中的宏定义作用相似,但它不是替换,而是在函数调用时在调用点展开该函数,所以inline函数对于编译器而言必须是可见的。inline函数必须在调用该函数的每个文本文件中定义。它属于建议型关键字(使不使用inline机制编译器说了算)

  • 1,典型的以空间换取时间的方式,节省函数调用时的栈帧开销。
  • 2,如果函数体内有循环、递归时,编译器不会理会inline关键字,也就是说编译器这时不会听话的。
  • 3,inline关键字只在定义时起作用,在声明前不起作用。
  • 4,定义在类里面的成员函数默认是inline函数。
  • 5,这时宏函数可以用inline替换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值