2

我做了一个函数,我想检索两个返回,而不是一个返回,例如这个例子:

long Conv(double num){      
    long a,b;
    a = floor(num);
    b = num * pow(10,6) - a * pow(10,6);

    return a;
    return b;
} 

当我调用函数时

long a = Conv(30.233456);

问题是:我如何检索b

4

3 回答 3

4

你不能一次返回两次。

您可以通过引用将 b 传递给您的函数。

yourfunction( long a , long* b )
{    
    *b = a + 10;
    //more code

return a;
}

a = yourfunction(a , &b );
于 2013-03-14T17:15:14.613 回答
3

您不能从 C 中的函数返回多个值。要么返回 a struct,要么通过引用传递并在函数中修改。

示例 1:struct

struct ab {
  long a;
  long b;
}

struct ab Conv(double num) {
  struct ab ab_instance;

  ab_instance.a = floor(num);
  ab_instance.b = num * pow(10,6) - a * pow(10,6);

  return ab_instance;
}

示例 2:pass b by reference

long Conv(double num, long& b) {
  long a;
  a = floor(num);
  b = num * pow(10,6) - a * pow(10,6);

  return a;
}
于 2013-03-14T17:16:14.590 回答
1

Armin 有点回答它,但这里有一些示例代码:

int get_both(int* b) {
    a = 0;
    *b = 1;
    return a;
}
于 2013-03-14T17:17:16.863 回答