【发布时间】:2017-03-31 12:56:11
【问题描述】:
为什么我们不能返回一个结构体作为返回值?我也想打印?我想打印返回结构的变量。
#include <stdio.h>
struct distance
{
int feet;
float inch;
};
distance add(struct distance d1,struct distance d2);
distance d3;
int main()
{
struct distance dist1, dist2,dist3;
printf("first distance\n");
scanf("%d",&dist1.feet);
scanf("%f",&dist1.inch);
printf("second distance\n");
scanf("%d",&dist2.feet);
scanf("%f",&dist2.inch);
dist3 = add(dist1,dist2);
printf("sum of distances= %d\'-%.1f\"",dist3.feet,dist3.inch);
return dist3;
}
distance add(struct distance d1,struct distance d2){
//Adding distances d1 and d2 and storing it in d3
d3.feet = d2.feet+d1.feet;
d3.inch = d2.inch+d1.inch;
if(d3.inch>12){
d3.inch-=12;
++d3.feet;
}
}
显示以下错误信息 prog.c:7:1:错误:未知类型名称“距离” distance add(struct distance d1,struct distance d2);
【问题讨论】:
-
我相信你可以做到这一点。但是出于某种原因,您不是
return来自add的任何东西...... -
typedef 'distance' 结构体。
-
你应该启用编译器警告。
-
add的返回类型不正确。你应该有:struct distance add(struct distance d1,struct distance d2);。在没有typedef的情况下,struct distance的类型是struct distance。 -
是的,我试过了!它没有