带默认参数值的函数 && 内联函数

内联函数:

如果在声明函数时使用关键字inline,编译时会在调用处直接用函数体进行替换,而不是调用函数

既然是直接替换,那么里面肯定不能有循环语句,switch语句等

注:①内联函数可以避免函数调用,节省参数传递、控制转移等开销

②一般编译器自带优化,对于充分简单的函数,编译器可以自动把函数编译成inline的


带默认参数值的函数:

可以预先设置默认的参数值,调用时如给出实参,则采用实参值,否则采用预先设置的默认参数值

如下程序(代码中有注释)


#include<stdio.h>
inline int Add(int x, int y=1, int z=2);
//	可以预先设置默认的参数值,调用时如给出实参,则采用实参值,否则采用预先设置的默认参数值
/*	
	有默认参数的形参必须列在形参列表的最右边,即默认参数值的右面不能有无默认值的参数,如下面的定义就是非法的
	int Add(int x=2, int y, int z=2)	//错误!
	{
		return x+y+z;
	}
*/
int main(void)
{
	int d, c;
	scanf("%d%d", &c, &d);
	printf("%d\n", Add(c, d));		//ans = c+d+2
	printf("%d\n", Add(c));			//ans = c+1+2
	printf("%d\n", Add(c, d, 100));			//ans = c+d+100
		//不允许Add(),这样会编译报错,因为函数中的第一个形参没有给默认值
	return 0;
}
int Add(int x, int y, int z)		//如果原型声明在函数定义之前,那么默认参数必须且只能在原型声明中给出
{
	return x+y+z;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值