c - 使用 c 函数返回多个变量

标签 c function return

<分区>

我正在尝试使用结构通过以下代码返回多个变量。

有更好的方法吗?

这个技术怎么样,它有效率吗?

PS:我是嵌入式系统的新手,因此试图发现内存、性能和此类约束的最佳技术。

#include <stdio.h>
struct two func(int , int );

struct two {
    int x;
    int y;

};

int main()  {
    printf("values is\n %i\n %i\n ",func(33,44).x,func(33,44).y);
    return 0;
}


struct two func(int x, int y ) {

    struct two ex;
    ex.x=x;
    ex.y=y;

    return ex;
};

最佳答案

这是一项很好的技术,而且效率不高。 (但也有其他选择;Sean K 的回答中提到了一个。另请参阅 http://c-faq.com/misc/multretval.html。)

效率低下的地方——如果函数有副作用的话,可能还有问题——调用它两次以获得它的两个值。我会用

struct two r = func(33, 44);
printf("values are %i %i\n", r.x, r.y);

关于c - 使用 c 函数返回多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40585704/

相关文章:

c - VLAN上的UDP套接字单播/多播问题

c - 将文本文件加载到 C 程序中

c - int 变量在语句结果中声明为 double 后如何变化?

c++ - 函数成员声明中各部分的名称

javascript - 使用 javascript 动态创建 onmouseover/onmouseout 函数?

javascript - 如何在javascript中过滤d3.nested数据 - 嵌套函数

java - 如何获取方法或返回值使用了多少空间?

java - 是否可以从方法返回

Java 方法已损坏

c - Xterm 寻呼机 - 两个终端输出 - 使用管道和 dup2