c++基础学习笔记——内联函数(inline)

函数调用需要建立栈内存环境,进行参数传递,并产生程序执行转移,这些工作都需要时间开销,有些函数使用频率高,但代码却很短,因此c++提供了inline函数,减少函数调用的成本

内联函数的函数体限制:内联函数中,不能含有复杂的结构体控制语句,如switch和while等。如果内联函数有这些语句,则编译将该函数视同普通函数那样将产生函数调用代码。递归函数也不能视为内联函数。

inline int max(int a, int b)
{
	return a>b?a:b;
}
int main()
{
	int a=55, b=4;
	int c=max(a++,b);		//调用内联函数
}

内联函数与宏定义区别
①宏定义可以代替小函数定义,但有缺陷;
②宏只告诉编译器简单的替换,不检查参数类型;
③宏的作用可以用内联函数代替。

默认参数的函数:调用函数时可以不指定全部参数,为可以不指定的参数提供默认值。
例如:

int add(int x=5,int y=6,int z=3);
int main()
{
	add();		//所有参数均为默认值
	add(1,5);	//第三个参数采用默认值
}

默认参数的顺序规定:如果一个函数中有多个默认参数,则形参分布默认参数应从右至左逐渐定义,当调用函数时,只能向左匹配参数。
例如:

void func(int a=1, int b, int c=3, int d=4);		//error
void func(int a, int b=2, int c=3, int d=4);		//ok

//对第二个函数调用时
func(10,15,20,25);		//ok,调用给出了所有参数
func();					//error,参数a没有默认值
func(10,15);			//ok,参数c,d采用默认值
func(2,10,,5);			//error,只能从右到左顺序匹配参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值