重要:請參閱以下非常相關的問題: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