<分区>
我一直在寻找这个问题的答案大约一个小时,我是 C 的新手。当提到这一行时,我收到警告“逗号表达式的左操作数没有影响”
return studio, one, two;
根据我的打印函数显示的内容,该语句没有返回一两个变量。这是在 C 中返回多个变量的正确方法还是我做错了?这是我第一次不得不这样做,我们在类里面没有讨论过这个问题。提前为(我敢肯定)一个非常简单的修复道歉。
<分区>
我一直在寻找这个问题的答案大约一个小时,我是 C 的新手。当提到这一行时,我收到警告“逗号表达式的左操作数没有影响”
return studio, one, two;
根据我的打印函数显示的内容,该语句没有返回一两个变量。这是在 C 中返回多个变量的正确方法还是我做错了?这是我第一次不得不这样做,我们在类里面没有讨论过这个问题。提前为(我敢肯定)一个非常简单的修复道歉。
最佳答案
您不能在 C 中返回多个值。您的选择是返回一个结构,或者传递对您要修改的变量的引用:
返回结构:
struct studio_stuff {
int studio;
int one;
int two;
};
struct studio_stuff foo()
{
struct studio_stuff ret;
ret.studio = 0;
ret.one = 1;
ret.two = 2;
return ret;
}
传入引用进行修改:
void foo(int * studio, int * one, int * two)
{
*studio = 0;
*one = 1;
*two = 2;
}
关于c - 如何在函数中返回多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28288887/
相关文章:
C - 为什么我不能读取模块中的链接列表并返回 main 中的 header ?
java - getHeight 和 getMeasuredHeight 返回 0,即使在 Runnable 中也是如此
c - 为什么我必须声明常量 Pi 值才能在 Math.h 中使用 Cos 函数?
c++ - 为什么我只能将文件中的位置指示器 (SetFilePointerEx) 移动 512 乘数?
javascript - Jquery:你能给我解释一下这行代码吗?帮助我理解它,或者提供我可以了解它的引用资料