C语言中如何向同一函数传不同类型的形参?

2024-05-08 04:32:20
推荐回答(5个)
回答1:

c语言没有重载,c++有。
可以使用字符串传递原值和目标值,增加备蔽嫌类型定义参数。
int template(char *dst, char *src,int type)
{
int i_aa=0;
double d_bb=0.0L;

switch(type){
case 0: //整型
i_aa = atof(src);
i_aa = i_aa * 10;
sprintf(dst,"%d",i_aa);
break;
case 1: //浮点型
d_bb = atof(src);
d_bb = d_bb - 0.05;
sprintf(dst,"%.2lf",d_bb);
break;
case 2: //字符串
sprintf(dst,"this is %s",src);
break;
default:
return src;
}
return dst;
}

函数仿手外再处理dst了。注意长度定义。并激

回答2:

c语言没有重载,c++有。
可以使用字符串传递原值和目标值,纳凳增加类型定义参数。
int
template(char
*dst,
char
*src,int
type)
{
int
i_aa=0;
double
d_bb=0.0L;
switch(type){
case
0:
//整型
i_aa
=
atof(src);
i_aa
=
i_aa
*
10;
sprintf(dst,"%d",i_aa);
break;
case
1:
//浮点型
d_bb
=
atof(src);
d_bb
=
d_bb
-
0.05;
sprintf(dst,"%.2lf",d_bb);
break;
case
2:
/迅茄/字符串
sprintf(dst,"this
is
%s",src);
break;
default:
return
src;
}
return
dst;
}
函数外再处理dst了。注亩茄察意长度定义。

回答3:

重载轮饥链!肢戚!

函数重载!腊孙

例如:

int fn(int n)
{
}
float fn(float n)
{
}

回答4:

可以传地址和地址数据的字节长度

回答5:

把参数 设置为 void*