c - 从一个函数返回多个值

标签 c

<分区>

谁能告诉我如何从函数返回多个值?
请举例说明?

最佳答案

您在这里的选择是要么返回一个包含您喜欢的元素的结构,要么使函数使用指针处理参数。

/* method 1 */
struct Bar{
    int x;
    int y;
};

struct Bar funct();
struct Bar funct(){
    struct Bar result;
    result.x = 1;
    result.y = 2;
    return result;
}

/* method 2 */
void funct2(int *x, int *y);
void funct2(int *x, int *y){
    /* dereferencing and setting */
    *x  = 1;
    *y  = 2;
}

int main(int argc, char* argv[]) {
    struct Bar dunno = funct();
    int x,y;
    funct2(&x, &y);

    // dunno.x == x
    // dunno.y == y
    return 0;
}

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

相关文章:

谁能帮我用递归解决这个问题?

c++ - 使用 VMIME/libcurl 不通过服务器发送电子邮件(或 : SMTP server library)

c - 如何使用 "enter"在 C 中分隔输入标记?

c - 如何在C中读写串口数据,open函数的问题

c - 从命令行使用 Visual Studio 2013 编译 aritchk.c 时出现未解析的符号

c++ - C block 扩展 (libBlocksRuntime) - 为 Block_copy() 使用自定义内存分配器 (Boehm GC)

c - 我在 Quake 源代码 (C) 中无法理解的符号

c++ - 如何让 NPAPI 插件读取 "src"标签

c - 在 Linux 上检测 VMM

c - telnet 客户端在recv()后没有响应