3参数为默认值的函数

发布时间 2024-01-11 23:11:10作者: 二氧化硅21

参数为默认值的函数

  • 参数从右面开始给默认值。
  • 如果不缺省参数,需要在汇编层面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;
 }