内联函数和宏定义的区别

宏定义

宏定义是#define 所修饰的,宏只是一种定义,他定义了一个语句块,当程序编译时,编译器首先要执行一个“替换”源程序的动作,把宏引用的地方替换成宏定义的语句块,就像文本文件替换一样。

    1)宏做的只是简单的字符串替换,而函数的参数的传递,参数是有主句类型的

    2)宏的参数替换是不经过计算而直接处理的

    3)宏在编译前进行,即先用宏替换宏名,然后再编译的

    4)宏的参数是不占用内存空间的,因为只是做字符串的替换

    5)宏不需要进行进行压栈等一系列执行函数时所用到的操作

 内联函数

C++中的内联函数定义很简单,只需要在普通的函数前加一个关键字inline就可以了,除此之外和普通函数表面上没有什么区别,包括函数的调用。

    1)内联函数就是很简单的将函数内嵌到调用他的程序代码中,这样做的目的是为了节约原本函数调用时的时空开销

    2)在类中定义内联函数,他也是成员函数,可以访问私有成员变量,其实在C++中,在类的内部定义了函数体的函数,被默认为是内联函数,如果函数被调用过多的话或者内联函数的函数体过大,一般的编译器会放弃内联方式,而采用普通的方式调用函数。这样内联函数和普通函数的执行效率一样了

    3)内联函数在调用时,不用进行调用普通函数时所执行的寻址过程,当执行到内联函数时,此函数展开(类似于宏的替换),声明为内联函数的函数,不宜过长,否则就会被认为是普通函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值