在函数中同时返回两个值

时间:2015-08-08 10:48:23

标签: c function return-value multiple-return-values

如何在C编程语言的一个函数中同时返回两个整数类型值,还是应该编写两个不同的函数?

5 个答案:

答案 0 :(得分:5)

您可以创建一个struct,其中有两个整数,并根据您的函数返回此struct

使用C语言,您可以将数据存储在struct中,如下所示:

struct foo {
 int x;
 int y;
}

答案 1 :(得分:3)

两个不同的功能或通过参考参数传递。

e.g。

void someFunc(int* outParam1, int* outParam2)
{
    if (outParam1 != NULL) {
        *outParam1 = 42;
    }
    if (outParam2 != NULL) {
        *outParam2= 13;
    }
}

答案 2 :(得分:3)

如果返回它们不是强制性的,你可以接受使用指针,它遵循一种可能的方法:

void your_function(/* some other parameters */ int *ret1, int *ret2) {
    int first_value, second_value;
    // do whatever you want there
    *ret1 = first_value; // first_value is the first value you want to return, quite obvious
    *ret2 = second_value; // still obvious
}

然后,您可以按如下方式调用它:

// somewhere
int r1, r2;
your_function(/* other parameters */ &r1, &r2);
// here you can use "returned" values r1, r2

答案 3 :(得分:1)

在C中,函数只能返回一个值。 您可以通过地址将变量传递给函数,并使用函数对其进行修改。

#include <stdio.h>

int returnTwoInt(int *var2)
{
    *var2 = 2;
    return 1;
}

int main()
{
    int var2 = 0;
    int var1 = returnTwoInt(&var2);

    printf("%d %d\n", var1, var2);

    return 0;
}

答案 4 :(得分:1)

您可以使用任何一种方法 -

使用var i = 0; $('#search-input').on('keydown', function(e) { if(e.which == 40 || e.keyCode == 40) { e.preventDefault(); $(this).addClass('red'); alert(i++) } }); 并返回struct

使用指针处理参数的函数 实施例 -

struct variable