C语言超载

teg*_*gme 0 c xcode overloading

#include <stdio.h>

int Add(int a, int b);
int Add(int a, int b, int c);
double Add(double a, double b);

void main()
{
    printf("1+2=%d\n",Add(1,2));
    printf("3+4+5=%d\n",Add(3,4,5));
    printf("1.414+2.54=%f\n",Add(1.414,2.54));
}

int Add(int a, int b)
{
    return a+b;
}

int Add(int a, int b, int c)
{
    return a+b+c;
}

double Add(double a, double b)
{
    return a+b;
}
Run Code Online (Sandbox Code Playgroud)

我用C语言编写并使用Xcode.在研究"重载"时,Xcode会显示错误消息,指出无法执行过载.相反,它显示"添加'的冲突类型"消息.使用Xcode,过载是不是可以工作?

Sat*_*ish 5

简单来说,C不允许函数重载!所以,你不能用同一个名字写多个函数!

尝试给出不同的功能名称并尝试 -

#include <stdio.h>
int Add2int(int a, int b);
int Add3int(int a, int b, int c);
double Add(double a, double b);

void main()
{
    printf("1+2=%d\n",Add2int(1,2));
    printf("3+4+5=%d\n",Add3int(3,4,5));
    printf("1.414+2.54=%f\n",Add(1.414,2.54));
}

int Add2int(int a, int b)
{
    return a+b;
}

int Add3int(int a, int b, int c)
{
    return a+b+c;
}

double Add(double a, double b)
{  
    return a+b;
}
Run Code Online (Sandbox Code Playgroud)