C++内联函数

本文探讨了C语言中内联函数与宏函数的区别。内联函数作为更安全的宏替代品,适用于简单函数,避免了预处理器宏的一些问题。然而,内联函数在调试版本中可能不可用,并且其优化取决于编译器。关键点包括:内联函数不创建栈帧,节省时间和空间;内联建议而非保证,且声明与定义分离可能导致链接错误;适合小规模函数以提高效率。示例展示了如何定义和使用内联函数。
摘要由CSDN通过智能技术生成

内联函数 替代c语言的宏函数 是一种更安全的宏

1.内联的函数必须是非常简单的函数,不带if,for

2.inline函数只在release版本中可用,debug版本中不可用

当函数被调用的时候,会在编译时期在调用点将函数展开

没有栈帧的开辟和回退,减少了现场保护和现场恢复,节省了大量时间空间

inline 只是对编译器的建议,建议将该函数处理为内联

inline函数只在当前文件有效吗,生成的是local符号

inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开, 就没有函数地址了,链接就会找不到.

如果函数的执行开销小于开栈清栈开销(函数体较小),使用inline处理效率高。
如果函数的执行开销大于开栈清栈开销,使用普通函数方式处理。

inline int fun(int a,int b)
{
	return a + b;
}
int main()
{
	int a = 10;
	int b = 20;
	fun(a, b);//等同于return a+b;

	system("pause");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小新 蜡笔

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值