2010-10-04 31 views
0

剛剛從Cocoa開發指南開始學習C,我想知道如何(如果可能)我會返回一個函數的結果與多個變量類型。例如,我有我做練習我讀一下簡單的數學函數,我給它的多個變量類型:如何讓函數返回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); 
} 

我將如何正確使用多種類型的變量單一功能/公式? 另外,我不確定返回行的語法是否正確...我有點刺傷了它。

回答

3

首先,您不要將函數定義放在main()函數中。在外面做。 你可能想要把int main(),而不只是主,和return 0int 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; 
} 
+0

雅,我原來的功能的一部分是一個錯字...感謝您的迅速響應 – MBguitarburst 2010-10-04 00:49:40

0

不能回報多種類型。但你可以返回一個聯合(或者更好的還是一個包含類型指示器和聯合的結構)。

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

multitype f(int arg1, ...); 

當然,那麼你必須手動管理多態。

相關問題