inline 内联函数

      在C++中,用户可以创建实际上不调用的短函数,它们的代码在每次调用的程序行里得到扩展。这个过程类似于作用类函数的宏。

      内联函数是C ++和一个重要补充的原因是,它们能使程序员写出非常有效的代码。因为类一般要求几个经常被执行的接口函数,因此,这些函数的效率非常重要的。当然,虽然函数行内扩展能产生较快的执行速度,但由于重复编码会产生较长的代码。

      在类声明内定义短函数是可能的。如果一个函数是在类声明内定义的,它将自动转换成内联函数。没有必要在函数声明的前面加上关键字inline.

      在此有一点很重要,所有需要调用内联方法和函数的源文件中,都应该提供内联方法和函数的定义。编译器如果看不到函数定义,它怎么能替换函数体呢?因此,这说明,要把方法定义放在包括类定义的.h文件中。这样放是很安全的。

 

注意问题:

      1、当使用内联函数时,当函数原型和定义在同一个文件中时,它们都必须标明inline。否则,在函数原型和定义之间就会出现不匹配,导致编译错误。

      2、把一个函数入库的一般过程就是把它的原型存入库的头文件并把它的定义存入实现文件。然而,如果需要内联的话,这种分割是不允许的。一个内联库函数必须在头文件中定义。因为编译器在编译时所看到的库的唯一部分就是它处理#include指令时加入的库的头文件。如果编译器要用函数定义来替换函数调用的话,函数的全部定义要对编译器可见,就是说,它必须从实现文件中移到头文件中。

      3、为了避免代码膨胀,我们建议在作用inline时注意限制:如果函数仅包含少量语句,就标记它们为inline来消除函数调用的开销。但是如果函数包含了很多语句,则不要使用inline。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值