C/C++ 内联函数

  1. 内联函数具备一般函数的性质,但是不需要调用,而是在编译阶段,会用函数体替换函数名被调用的地方。可以节省调用时间(进出栈、保存上下文)。
  2. 在编译层面和宏的作用相同。内联函数的展开在编译阶段,宏展开在预处理阶段,一般函数执行时调用转移。
  3. 内联函数可以替代宏,弥补宏的一些缺陷。例如宏不能访问类内部的变量,宏定义时参数如果是计算式常出问题。
  4. 内敛函数使用的要求:
    1. 递归函数不能用作内联函数
    2. 内联函数一般不适合用于包含while等复杂结构的语句,一般都是1~5句简单句
    3. 先定义后使用
    4. 定义时必须连同函数体一起声明
  5.  1 //inline example
     2 
     3 int main(){
     4      void print(int x){
     5             printf("%d ",x);
     6       }
     7     for( int i=0; i<100; i++ )
     8         print(i);
     9     return 0;
    10 }
    11 
    12 // another example
    13 inline void print( int x ){
    14     printf("%d",x);
    15 }
    16 
    17 int main(){
    18     for( int i=0; i<100; i++ )
    19         print(i);
    20     return 0;
    21 }
    22 
    23 //macro example
    24 #define ZERO_MAX(x) ( ( (x) > 0 ) ? (x) : 0 );

     

posted on 2015-04-27 15:10 HF_Cherish 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/hf-cherish/p/4460256.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值