C - 在函数中返回2个值并尝试使用它们

Kas*_*par 5 c

所以我有这个函数,我返回2个值:

return result, result2;
Run Code Online (Sandbox Code Playgroud)

现在我要做的是在我的main函数中使用这两个值.我想将它保存到main函数中的变量中,如下所示:

variable = function(a,b);
Run Code Online (Sandbox Code Playgroud)

但是,您如何在此指定您想要的值?

fed*_*024 12

不,你不能在C中做到这一点,你可以只返回一个值.逗号运算符只返回最后一个值,因此您实际上返回第二个值.

您可以通过引用传递数据,例如

function(&a, &b);

void function(int *a, int* b){
    *a = 42;
    *b = 666;
}
Run Code Online (Sandbox Code Playgroud)

您还可以将它们放在结构中并将其返回,甚至是指向动态分配结构的指针.

typedef struct int_pair {
    int a, b;
} int_pair;

int_pair function(){
    int_pair s;

    s.a = 42;
    s.b = 666;

    return s;
}
Run Code Online (Sandbox Code Playgroud)