C/C++教程

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. 不管何处给,形参默认值只能出现一次
这篇关于C++基础-形参带默认值的函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!