002
13.09.2005, 15:14 Uhr
Pablo
Supertux (Operator)
|
Mehrere Werte zurückgeben, ist nicht möglich. Was man machen kann, ist ein struct erstellen (wie breits erwähnt), und das struct zurückgeben. Man kann aber auh ein Zeiger zurückliefern, da kann man auch (sollte man aber vorsichtg damit umgehen) auf ein Array zeigen, falls alle Werte, die man zurückgeben will, gleiche Typs sind.
Die dritte Möglichkeit wurde auch von Sadrior erwähnt, die Referenzen. Aber das geht nur in C++, C kennt keine Referenzen. Aber man kann Zeiger als Parameter bekommen und diese ändern, z.b.
C++: |
void foo(int a, int b, int* summe, int* subtraktion, int* multiplikation) { *summe = a + b; *subtraktion = a - b; *multiplikation = a * b; }
void bar() { int summe, subtraktion,multiplikation;
foo(5,3, &summe, &subtraktion, &multiplikation); }
|
Zwar werden keine Werte (von foo) zurückgegeben, aber die Werte werden geändert, und es ist, als hätte man mehrere Werte zurückbekommen. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! |