比较常用的两个作用是:
1.修饰全局变量
2.简化类static变量
其他作用:
详解:关于C++类的inline 成员函数 - JustinYo - 博客园 (cnblogs.com)
1.修饰本项目的全局变量
C++17 前:需要
头文件extern声明 ,源文件定义。这样其他文件引用这个变量不会报多重定义的错误。
C++17
直接在头文件声明+定义,其他文件就可以直接用
但是要注意inline的全局效果只作用到本项目,如果是跨越dll项目就会导致每个dll复制了一份这个inline变量。所以inline不能完全替代extern 做全局导出变量。跨越动态库变量还需要export导出。
2.简化类static变量
C++17 前:
需要在类中声明,在类外定义,其他文件才能调用它。
C++17
直接在头文件声明+定义,其他文件就可以直接用
示例: