Zwracanie wielu wartości z funkcji C

Ważny: Zobacz to bardzo powiązane pytanie:Zwraca wiele wartości w C ++.

Jestem po tym, jak zrobić to samo w ANSI C? Czy użyłbyś struktury lub przekazał adresy parametrów w funkcji? Jestem po niezwykle wydajnym (szybkim) kodzie (czas i przestrzeń), nawet kosztem czytelności.

EDYTOWAĆ: Dziękuję za wszystkie odpowiedzi. Ok, myślę, że jestem winien pewne wyjaśnienia: piszę tę książkę o pewnym podzbiorze algorytmów dla konkretnej domeny. Postawiłem sobie dość arbitralny cel, jakim jest stworzenie najbardziej wydajnych (czasowych i przestrzennych) implementacji dla wszystkich moich alg, które można umieścić w sieci, kosztem czytelności i innych rzeczy. Jest to częściowo charakter mojego (ogólnego) pytania.

Odpowiedź: Mam nadzieję, że zrozumiem to prosto (z możliwie najszybszego) do bardziej pospolitego (a priori, to znaczy bez testowania):

Przechowuj wartości w obiekcie globalnym (zakładam coś w rodzaju outvals [2]?), LubPrzekazuj wartości jako parametry w funkcji (foo (int in, int * out1, int * out2)) lubzwróć strukturę z obydwoma odstępami lub(3) tylko wtedy, gdy wartości są powiązane semantycznie.

Czy to ma sens? Jeśli tak, myślę, że odpowiedź Jasona jest najbliższa, mimo że wszystkie stanowią część „układanki”. Robert ma się dobrze, ale w tym czasie semantyka nie jest tym, za czym się podążam (chociaż jego rada jest należycie odnotowana)

Dziękuję wam wszystkim.

questionAnswers(11)

yourAnswerToTheQuestion