CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

C—C++的普通函数、内联函数、宏-永久免费的源码丞旭猿

内联函数 PK 普通函数

代码编译后的可执行程序实际是一组机器语言指令,在运行程序时,操作系统将这些指令载入内存(每条指令均占内存空间),计算机随后逐条执行这批指令。当遇到到函数时,程序先存储该指令的内存地址,并将函数参数复制到堆栈,然后跳到函数起点所在的内存单元,执行函数代码,最后回到刚保存的内存地址(这与阅读文章时停下来看注释,并在阅读完注释后返回到以前阅读的地方类似)。

普通函数在调用时需要来回跳跃并记录跳跃位置,这需要额外的开销。内联函数直接以函数代码替代了函数调用语句, 从而避免了函数调用的开销,执行效率更高,但代价是占用更多内存。

内联函数 PK 宏

内联函数是一个真正的函数,遵循函数的类型和作用域规则,编译器在调用一个内联函数时,会首先检查它的参数的类型,保证调用正确,这样就消除了它的隐患和局限性;内联函数可以作为某个类的成员函数,这样就可以在其中使用所在类的保护成员及私有成员;宏是不加任何验证的简单代码替换,除非万不得已,不要使用。注意

内联是以代码膨胀(复制)为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。如果执行函数代码的时间比处理函数调用机制的时间长,则节省的时间占比很小;如果代码执行时间很短,则内联函数就可以节省函数调用的时间。

但应注意:

含有递归调用的函数不能设置为inline;使用了复杂流程控制语句:循环语句和switch语句,不能设置为inline;由于inline增加体积的特性,所以建议inline函数内的代码应很短小。最好不超过5行;内联函数应该在头文件中定义,关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。小例子

关键字inline必须与函数定义在一起
关键字inline必须与函数定义在一起
举报/反馈

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容