重要:请参阅以下非常相关的问题:Return multiple values in C++。从C函数返回多个值
我在如何在ANSI C中做同样的事情?你会使用一个结构或传递函数中的参数地址吗?即使是以可读性为代价,我仍然是在非常高效(快速)代码(时间和空间)之后。
编辑:感谢所有的答案。好的,我认为我欠缺了一些解释:我正在撰写关于某个特定域的某些算法子集的书。我已经为自己设定了一个相当武断的目标,即以可读性和其他方式为代价,为我所有的算法提供最高效率(时间和空间)的实现。这部分是我的(一般)问题的性质。
答:我希望我就直,从(可能)最快多见无意义的(这一切是先验的,即没有测试):在全球对象
- 商店outvalues(我)或
- 在函数中传递outvalues作为参数(foo(int in,int * out1,int * out2)),或者
- 返回一个结构同时具有两个outvals,或者
- (3)只有当这些值在语义上相关时。
这是否有意义?如果是这样,我认为杰森的回应是最接近的,尽管他们都提供了一些“难题”。罗伯特的很好,但在这个时候语义并不是我所追求的(尽管他的建议被适当注意到)
谢谢大家。
无情地编写代码和配置文件。我认为你会发现struct-vs-reference对性能的影响与其他实现相比*非常小,甚至不值得考虑。 – 2009-07-06 19:55:31
这也是很好的建议。谢谢。 (顺便说一句,我的确让你赞不绝口,所以恰巧我得到了更实际的答案,就是这样。) – 2009-07-06 20:12:18
我知道。谢谢。 – 2009-07-07 01:19:32