//函数重载基础
/*
1、函数重载(Function Overload)
用 同一个函数名 定义 不同的函数
当函数名和不同的参数搭配时函数的含义不同
2、函数重载至少满足下面的一个条件:
参数个数不同
参数类型不同
参数顺序不同
3、函数返回值不是函数重载的判断标准
重载函数在本质上是相互独立的不同函数(静态链编)
重载函数的函数类型是不同的
函数返回值不能作为函数重载的依据
函数重载是由函数名和参数列表决定的
4、函数重载的注意事项
重载函数在本质上是相互独立的不同函数(静态链编)
重载函数的函数类型是不同的
函数返回值不能作为函数重载的依据
函数重载是由函数名和参数列表决定的
*/
void mufunc(int a)
{
printf("a = %d\n", a);
}
void mufunc(char *p)
{
printf("p = %s\n", p);
}
void mufunc(int a, int b)
{
printf("a = %d b = %d \n", a, b);
}
void mufunc(char *p1, char *p2)
{
printf("p1 = %s p2 = %s\n", p1, p2);
}
/*
//返回值 不是 判断函数重载的标准
int myPrint(int a, int b)
{
printf("a:%d ", a);
printf("b:%d \n", b);
}
*/
void test()
{
mufunc(1);
mufunc("haha");
mufunc(1, 2);
mufunc("ddd", "fff");
}
#if 1
void myfunc(int a, int b, int c = 0)
{
printf("a:%d b:%d c:%d \n", a, b, c);
}
void myfunc(int a, int b)
{
printf("a:%d b:%d\n", a, b);
}
void myfunc(int a)
{
printf("a:%d\n", a);
}
void test()
{
myfunc(1);
}
#endif