c - 如何在函数中返回多个变量

标签 c return

<分区>

我一直在寻找这个问题的答案大约一个小时,我是 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/

相关文章:

objective-c - 使用定义控制每个源文件的宏编译

C - 为什么我不能读取模块中的链接列表并返回 main 中的 header ?

c - 从传递的参数中检索值

java - getHeight 和 getMeasuredHeight 返回 0,即使在 Runnable 中也是如此

c - 为什么我必须声明常量 Pi 值才能在 Math.h 中使用 Cos 函数?

c++ - 为什么我只能将文件中的位置指示器 (SetFilePointerEx) 移动 512 乘数?

javascript - Jquery:你能给我解释一下这行代码吗?帮助我理解它,或者提供我可以了解它的引用资料

c++ - 正确返回 vector 引用

javascript - 为什么 `finally` 中的返回覆盖 `try` ?

printf ("%d", <double> 的 c 行为