C++之inline函数使用总结

本文探讨了C++为何引入inline函数以替代宏定义,分析了inline函数的优点,如类型检查和直接代码替换,以及如何在类中使用。同时,提到了inline函数的缺点,如可能导致代码膨胀和内存消耗,并提醒开发者注意构造函数和析构函数的inline使用。最后,对比了inline函数与宏的主要区别,强调inline函数在编译阶段的安全性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、C++为什么引入inline函数?

主要目的:用它代替C语言中表达式形式的宏定义来解决程序中函数调用的效率问题。

C语言中的宏定义,它使用预处理器实现,没有了参数压栈、代码生成等一系列得到操作,因此效率很高。

但缺点如下:

预处理器符号表中的简单替换,不能进行参数有效性的检测,不能享受C++编译器严格类型检查的好处。
另外,它的返回值也不能被强制转换为可转换的合适类型。

C++如果一个操作或者说一个表达式涉及类的保护成员或者私有成员,这种宏定义就无法实现(因为无法将this指针放在合适的位置上)

 

 

二、为什么inline能很好的取代表达式形式的预定义?

inline定义类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换(像宏一样展开)没有了调用的开销,效率也高了
类的内联函数也是一个真正的函数。编译器在调用一个内联函数的时候,首先进行一系列的检测(参数的类型)

inline函数可以作为某个类的成员函数,这就可以在其中使用该类的保护成员和私有成员。

 

 

三、inline函数的使用场合

inline可以理解为2种,一种是显示的inline,一种是隐式的inline,如果类里面定义了函数,那么也就隐式调用的inline,默认是隐式。

示例代码:

 


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码莎拉蒂 .

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值