inline内联函数

inline内联函数

适用于:频繁调用的短小函数 (因为频繁调用会大量消耗栈空间)

特点:安全、提高效率、但以消耗空间为代价

用来代替c语言中 表达式形式 的宏定义

inline定义的类的内联函数,在使用时直接进行替换(像宏一样展开),没有了调用的开销(函数的压栈退栈),效率也很高。

#include <stdio.h>
//函数定义为inline即:内联函数
inline char* dbtest(int a)
 {
    return (i % 2 > 0) ? "奇" : "偶";
} 
 
int main()
{
   int i = 0;
   for (i=1; i < 100; i++)
    {
       printf("i:%d    奇偶性:%s /n", i, dbtest(i));    //不调用dbtest函数,而是用函数体直接替换函数调用
   }
}

调用 dbtest(i) 的地方都替换成了 (i%2>0)?“奇”:“偶”,这样就避免了频繁调用函数对栈内存重复开辟所带来的消耗。

内联函数和宏定义的区别

内联函数宏定义
本质是函数,在编译的时候编译器会在调用内联函数的地方直接把函数体插入(可以省去函数压栈退栈的时间),提高效率宏不是函数,只是在预编译阶段把宏名用宏体代替(简单的字符串替换
在编译的时候会进行参数类型的检查不检查
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值