我做了一个函数,我想检索两个返回,而不是一个返回,例如这个例子:
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
?
你不能一次返回两次。
您可以通过引用将 b 传递给您的函数。
yourfunction( long a , long* b )
{
*b = a + 10;
//more code
return a;
}
a = yourfunction(a , &b );
您不能从 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;
}
Armin 有点回答它,但这里有一些示例代码:
int get_both(int* b) {
a = 0;
*b = 1;
return a;
}