欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++中inline的用法

程序员文章站 2022-03-16 08:48:25
...

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

相关标签: inline