开发者

How do I make a function return the result of multiple variable types in C?

Just started learning C from Cocoa developing guide and I was wondering how (if at all possible) I would return the result of a function with multiple variable types. For example, I have a simple math function that I made to practice what I am reading and I gave it multiple variable types:

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

How would I utilize multiple variable types properly in a single function/equation? Also, I'm not sure the syntax of the return line is correct either...I sor开发者_StackOverflow中文版t of just took a stab at it.


First, you don't put the function definition inside the main() function. Do it outside. And you might want to put int main() instead of just main, and return 0 at the end of int main()

Then just assign a float variable to hold the result and return it.

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


You can not return multiple types. But you can return a union (or perhaps better still a structure containing a type indicator and a union).

typedef union {
   int i;
   float f;
} multi;
typedef struct {
   short type;
   multi m;
} multitype;

multitype f(int arg1, ...);

Of course, then you have to manage the polymorphism by hand.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜