gpt4 book ai didi

c - 从 C 函数返回多个值

转载 作者:太空狗 更新时间:2023-10-29 17:15:31 25 4
gpt4 key购买 nike

重要:请查看这个非常相关的问题:Return multiple values in C++ .

我想知道如何在 ANSI C 中做同样的事情?您会使用结构体还是在函数中传递参数的地址?我追求极其高效(快速)的代码(时间和空间),即使以可读性为代价。

编辑:感谢您的所有回答。好吧,我想我应该做一些解释:我正在写这本书,内容是关于特定领域的特定算法子集。我为自己设定了一个非常武断的目标,即以可读性和其他东西为代价,为我所有的算法制作最有效的(时间和空间)实现,并将其发布在网络上。这部分是我的(一般)问题的性质。

回答:我希望我能从(可能)最快到更符合常识(所有这些都是先验的,即没有测试)的方向直截了当:

  1. 在全局对象中存储 outvalues(我假设是 outvals[2] 之类的东西?),或者
  2. 在函数中将输出值作为参数传递 (foo(int in, int *out1, int *out2)),或
  3. 返回一个包含两个值的结构,或者
  4. (3) 仅当值在语义上相关时。

这有意义吗?如果是这样,我认为杰森的回应是最接近的,尽管他们都提供了一些“拼图”。罗伯特的很好,但此时语义不是我所追求的(尽管他的建议得到了适当的注意)。

最佳答案

这两种方式当然都是有效的,但我会考虑语义(结构与参数引用)来决定哪种方式最能传达您的意图给程序员。

如果您返回的值紧密耦合,则可以将它们作为结构返回。但是,如果您只是简单地创建人工机制来一起返回值(作为结构),那么您应该使用参数引用(即传递变量的地址)将值返回给调用方功能。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com