函数参数的扩展

Posted 阿弥陀佛.a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数参数的扩展相关的知识,希望对你有一定的参考价值。


#include <stdio.h>

int mul(int x = 0);

int main(int argc, char *argv[])
{
    printf("%d\\n", mul());
    printf("%d\\n", mul(-1));
    printf("%d\\n", mul(2));  
    return 0;
}
int mul(int x)
{
    return x * x;
}

输出结果:0 1 4
那么将代码用C语言编译器编译会报错,声明时给参数默认值C语言中是不合法的


提供默认值只能从右向左提供

#include <stdio.h>

int add(int x, int y = 0, int z = 0);

int main(int argc, char *argv[])
{
    printf("%d\\n", add(1));
    printf("%d\\n", add(1, 2));
    printf("%d\\n", add(1, 2, 3));
    return 0;
}
int add(int x, int y, int z)
{
    return x + y + z;
}

输出结果1 3 6



C++里面等价,C语言不等价( func()接受任意参数,func(void)不接受参数 )

#include <stdio.h>

int func(int x, int = 0);

int main(int argc, char *argv[])
{
    printf("%d\\n", func(1));
    printf("%d\\n", func(2, 3));
    
    return 0;
}
int func(int x, int)
{
    return x;
}

小结

以上是关于函数参数的扩展的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

这些角度电子邮件指令代码片段如何连接

是否可以在 XML 中传递构造函数参数?

Java方法

ES6--函数的扩展

getSupportFragmentManager() 在活动扩展片段中未定义