如何使函数返回C中多个变量类型的结果?

刚开始从Cocoa开发指南中学习C,我想知道如何(如果可能的话)我将返回具有多个变量类型的函数的结果。 例如,我有一个简单的数学函数,我练习我正在阅读的东西,我给它多个变量类型:

#include  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); } 

如何在单个函数/等式中正确使用多个变量类型? 另外,我不确定返回行的语法是否正确……我只是对它进行了一次尝试。

首先,不要将函数定义放在main()函数中。 在外面做。 你可能想把int main()而不是main,并在int main()的末尾return 0

然后只需指定一个float变量来保存结果并返回它。

 #include  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; } 

不能返回多种类型。 但是你可以返回一个联合(或者更好的是一个包含类型指示符和联合的结构)。

 typedef union { int i; float f; } multi; typedef struct { short type; multi m; } multitype; multitype f(int arg1, ...); 

当然,那么你必须手动管理多态性。