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 functin vs #define
下一篇: A饭雄起:“美国贴吧”用户数破40万