C++中inline的用法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CY071512/article/details/79699421

-引入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.宏没有类型安全的检查

猜你喜欢

转载自blog.csdn.net/CY071512/article/details/79699421