【c++手记】关于inline使用

inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。


《c++ primer》P221
将一部分的小操作(如两int型变量比较)定义为一个函数有几点好处:
1.阅读和理解一个函数的调用,比读一条用等价的条件表达式容易得多
2.修改函数比修改每一处表达式容易
3.使用函数保证统一行为
4.函数可以重用,不必重写代码

【一般函数与内联函数区别】
but,写成函数有个缺点:调用函数比调用表达式要慢!调用函数工厂是需要:保存寄存器;返回时恢复;负责实参;程序必须转向一个新位置执行。
使用内联函数可以帮助解决以上问题。
 
【编译层面】
将函数指定为内联函数,程序中每个调用点“内联地”展开,如:
cout<<add(a,b);//add(int,int)为内联函数
编译的时候就会变成
cout<<a+b;
 
【使用方法】
1.在函数返回类型上前加上关键字inline就将函数指定为内联函数(一般为声明与实现分离情况,即声明在头文件,实现在源文件)
2.在声明处直接定义此函数,可加可不加inline(即声明与实现皆在头文件时候)
 
【Warning】
1.内联说明(inline specification)对于编译器来说只是一个建议,编译器可以选择忽略建议
2.内联机制仅适用于优化小,只有几行代码而且经常别调用的函数,大多数编译器不支持递归函数的内联,且一个1000多行代码的函数也不太可能在调用点内联展开!
3.内联函数应该在头文件中定义

原文链接: https://www.cnblogs.com/jstone/archive/2012/09/03/2668117.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    【c++手记】关于inline使用

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/61666

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午10:05
下一篇 2023年2月9日 上午10:05

相关推荐