刚开始从Cocoa开发指南学习C,我想知道如果(如果可能的话)我将返回具有多个变量类型的函数的结果。例如,我有一个简单的数学函数,我练习我正在阅读的内容,并给了它多个变量类型:
#include <stdio.h>
float doMath (int variable1, float variable2, int variable3, float variable4);
main()
{
printf ("Math is fun!!\n");
float theMath = doMath (2, 3.66, 9009, 7.990);
printf ( "Result = %f\n", theMath );
}
float doMath (variable1, variable2, variable3, variable4)
{
return (variable1 * variable2) + (variable3 - variable4);
}
如何在单个函数/等式中正确使用多个变量类型? 另外,我不确定返回行的语法是否正确......我只是对它进行了一次尝试。
答案 0 :(得分:3)
首先,不要将函数定义放在main()
函数中。在外面做。
您可能希望int main()
而不仅仅是{,return 0
int main()
然后只需指定一个浮点变量来保存结果并返回它。
#include <stdio.h>
float doMath (int variable1, float variable2, int variable3, float variable4);
int main()
{
printf ("Math is fun!!\n");
float theMath = doMath (2, 3.66, 9009, 7.990);
printf ( "Result = %f\n", theMath );
return 0;
}
float doMath (int variable1, float variable2, int variable3, float variable4)
{
float answer = (variable1 * variable2) + (variable3 - variable4);
return answer;
}
答案 1 :(得分:0)
您无法返回多种类型。但是你可以返回一个联合(或者更好的是一个包含类型指示符和联合的结构)。
typedef union {
int i;
float f;
} multi;
typedef struct {
short type;
multi m;
} multitype;
multitype f(int arg1, ...);
当然,你必须手工管理多态性。