C++中inline的用法

-引入inline的原因

  为了解决一些频繁调用的函数大量消耗栈空间的问题,C++特地引入inline修饰符,表示为内联函数。编译时C++编译器会在调用内联函数的地方展开内联函数,没有函数压栈的开销,内联函数提升程序运行的效率。

class Date
{
public :
    void Func () // 定义在类内部默认为内联函数
    {}
    void Display ();
private :
    int _year ; // 年
    int _month ; // 月
    int _day ; // 日
};
inline void Date::Display () // 成员函数定义为内联
{
    cout<<"year:" <<_year<< endl;
    cout<<"month:" <<_month<< endl;
    cout<<"day:" <<_day<< endl;
}

-inline的特点

  1.inline是以空间换取时间,省去调用函数的额外开销
   2. inline对于编译器来说只是一种建议,编译器会自动优化。
   3. inline必须函数定义放在一起,才能成为内联函数,仅在声明中写入inline是不起作用的
   4. inline函数要求体内函数代码尽量简单,如果有递归、循环等,编译器不会讲函数看为inline函数,而是当做普通函数处理
   5. 定义在类中的成员函数默认为内联函数

- 扩展学习

  尽量以const,enum,inline替代#define

  • 宏的优点:
    1.提高了代码的复用性
    2.提高了代码性能

  • 宏的缺点
    1.宏不方便调试
    2.宏导致代码可读性差,可维护性差,容易误用
    3.宏没有类型安全的检查

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值