默认参数
int func(int a , int b = 10) {
return a + b;
}
void func1(int a , int b = 20, int(*p)(int , int) = func ){
p(a,b);
}
规则
- 参数按照从右到左顺序,不能间隔
- 函数有声明和实现.默认参数只能在声明中设置
*可以是常量,全局符号(全局变量,函数名)
实现原理
省略的参数其实也是被move或者push到寄存器中的
void display(double a, double b = 10) {}
int main()
{
display(10.0);
}
VS IDE 反汇编结果
IDA查看结果
display(10.0,20.0);
image.png
image.png
网友评论