编程语言
首页 > 编程语言> > C++基础-形参带默认值的函数

C++基础-形参带默认值的函数

作者:互联网

//定义处可以给形参默认值,声明也可以给形参默认值
//不管何处给,形参默认值只能出现一次
//int sum(int a = 10, int b = 20);

//形参带默认值的参数,只能从右向左给
//实际压栈也是从右向左
int sum(int a=10, int b=20)
{
	return a+b;
}

int main(void)
{
	int a = 10;
	int b = 20;
	int ret = sum(a,b);
	/*
		mov eax, dword ptr[ebp-8]
		push eax
		mov ecx, dword ptr[ebp-4]
		push ecx
		call sum
	*/
	cout<<"ret: "<<ret<<endl;

	ret = sum(a);
	/*
		push 14H
		mov ecx, dword ptr[ebp-4]
		push ecx
		call sum
	*/
	
	ret = sum(); //等同 sum(10,20);
	/*
		push 14H
		push 0Ah
		call sum
	*/
}

总结:

  1. 形参带默认值的参数,只能从右向左
  2. 直接传立即数比传变量效率更好,少了mov指令
  3. 定义处可以给形参默认值,声明也可以给形参默认值
  4. 不管何处给,形参默认值只能出现一次

标签:20,形参,int,形参带,sum,C++,默认值
来源: https://www.cnblogs.com/anqwjoe/p/16473239.html