如何使函数返回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, ...);
当然,那么你必须手动管理多态性。