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. 不管何处给,形参默认值只能出现一次

本文作者:言叶以上

本文链接:https://www.cnblogs.com/anqwjoe/p/16473239.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   言叶以上  阅读(116)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起