重要的
:请看这个非常相关的问题:
Return multiple values in C++
.
我在找如何用ANSI C做同样的事情?您将使用结构还是传递函数中参数的地址?我在追求非常高效(快速)的代码(时间和空间),即使以可读性为代价。
编辑
:谢谢你的回答。好吧,我想我应该得到一些解释:我写这本书是关于一个特定领域的特定算法子集的。我已经为自己设定了一个非常任意的目标,那就是以可读性和其他东西为代价,为我所有的算法在网络上实现最有效的(时间和空间)实现。这在一定程度上是我(一般)问题的性质。
回答
:我希望我能直截了当地说出来,从(可能)最快到更普通的感官(所有这些都是先验的,即没有测试的):
-
在全局对象中存储outValues(我假设outVals[2]?)或
-
在函数(foo(int-in,int*out1,int*out2))中将outvalues作为参数传递,或者
-
返回包含两个outvals的结构,或者
-
(3)仅当这些值在语义上相关时。
这有道理吗?如果是这样的话,我认为杰森的反应是最接近的,尽管他们都提供了一些“谜题”。罗伯特的建议很好,但此时语义不是我想要的(尽管他的建议被适当地指出了)。
谢谢大家。