美文网首页
c++之默认函数

c++之默认函数

作者: 全村的卡密 | 来源:发表于2020-02-26 00:15 被阅读0次

    C+ +允许函数设置默认参数,在调用时可以根据情况省略实参。规则如下:

    • 默认参数只能按照右到左的顺序
    • 如果函数同时有声明、实现,默认参数只能放在函数声明中
    • 默认参数的值可以是常量、全局符号(全局变量、函数名)
    • 函数重载、默认函数可能存在冲突性、二义性。建议优先保留默认函数
    void display(int a, int b =10){
    }
    void display(int a){
    }
    //二义性,不知道调用哪个
    display(19);
    

    利用汇编理解重载实现:
    对于
    sum(int a,int b)无默认参数函数,其汇编码如下:


    image.png

    对于
    sum(int a,int b = 4):


    默认参数
    汇编代码完全相同,(机器码E8后面地址不同是因为intel机器码计算方式所导致,它是根据所调用函数所处位置计算出来的机器码,但是其调用的函数地址是同一个地址)

    所以调用sum(1)相当于调用sum(1,4);

    相关文章

      网友评论

          本文标题:c++之默认函数

          本文链接:https://www.haomeiwen.com/subject/bezkchtx.html