更正返回类型以传递C中的引用函数



我编写了一个简单的C程序,其中包含一个函数,该函数要求用户通过引用传递两个浮点数字,并使用printf在main中将这两个数字打印到屏幕上。我的编译器在函数"的末尾警告我返回;表达式结果未使用";并建议将其改为return (void)(*a),*b;返回此功能的正确方式是什么?

#include <stdio.h>
float getFloats(float *a, float *b);
int main()
{
float num1,num2;

getFloats(&num1,&num2);

printf("%.2f, %.2fn", num1, num2);

return 0;
}
float getFloats(float *a, float *b)
{
puts("Enter numbers:");
scanf("%f", a);
scanf("%f", b);

return *a,*b;
}

将其更改为void,它就工作了。谢谢

#include <stdio.h>
void getFloats(float *a, float *b);
int main()
{
float num1,num2;

getFloats(&num1,&num2);
printf("%.2f and %.2fn", num1, num2);

return 0;
}
void getFloats(float *a, float *b)
{
puts("Enter numbers:");
scanf("%f", a);
scanf("%f", b);

}

在C中,不能返回多个值。如果你想返回更多,你需要将它们包装到结构中。

struct TwoFloats
{
float a,b;
};
struct TwoFloats getTwoFloats(void)
{
struct TwoFloats tf;
if(scanf("%f %f", &tf.a, &tf.b) != 2)
{
/* error handling  */
}
return tf;
}

最新更新