首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C中从一个函数返回多个值?

如何在C中从一个函数返回多个值?
EN

Stack Overflow用户
提问于 2010-04-12 14:03:43
回答 8查看 294.2K关注 0票数 97

如果我有一个生成结果int和结果string的函数,我如何从函数中返回这两个结果?

据我所知,我只能返回一个东西,这是由函数名前面的类型决定的。

EN

Stack Overflow用户

回答已采纳

发布于 2010-04-12 14:05:59

我不知道你的string是什么,但我假设它管理着自己的内存。

您有两种解决方案:

1:返回一个包含所有需要的类型的struct

代码语言:javascript
运行
复制
struct Tuple {
    int a;
    string b;
};

struct Tuple getPair() {
    Tuple r = { 1, getString() };
    return r;
}

void foo() {
    struct Tuple t = getPair();
}

2:使用指针传出值。

代码语言:javascript
运行
复制
void getPair(int* a, string* b) {
    // Check that these are not pointing to NULL
    assert(a);
    assert(b);
    *a = 1;
    *b = getString();
}

void foo() {
    int a, b;
    getPair(&a, &b);
}

您选择使用哪一种语义在很大程度上取决于个人偏好,即您更喜欢哪种语义。

票数 130
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2620146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档