参数为默认值的函数
- 参数从右面开始给默认值。
- 如果不缺省参数,需要在汇编层面mov实参到寄存器,并push压栈此寄存器值;而如果缺省一个参数,在汇编代码层面,相当于少一句mov指令,而可以直接push一个立即数。从而提高效率。
- 定义和声明两阶段都可以给默认值,但二者只能给一次,即使定义和声明两阶段给了相同的默认值也不可以。不过有下述情况。
#include<iostream>
using namespace std;
int sum(int a, int b = 10);
int sum(int a = 10, int b);
//相当于int sum(int a = 10, int b = 10)
int main(){
int a = 20;
cout << sum() << endl;
cout << sum(10);
}
int sum(int a, int b){
return a + b;
}