- 函数参数默认值从右到左设定,调用函数传递参数从左往右传
- 默认值函数调用,实参push入栈没有变化
- 参数默认值具有唯一性,默认,从上到下 从右往左
- 函数声明
正确的声明
int max(int a,int b);
int max(int a,int b=10);
int max(int a = 10,int b = 10);
错误的声明
int max(int a=10,int b);
- 函数定义
带有默认参数的函数,声明和定义不能同时给定默认参数的值
正确的声明定义
int max(int a,int b=10);
int max(int a,int b){...}
错误的声明定义
int max(int a,int b=10);
int max(int a,int b=10){...}
- 调用
int ret = max(10,10);等价于
int ret = max(10);等价于
int ret = max();