mehrere Werte bei return
-
... oder referenzen ...
-
@Anmerkung: Nicht in ANSI C
-
ich finde die 'nicht struct' Lösung besser.
Denn man muss nicht sinnlose structs erzeugen, wenn man unabhängige Werte hat.Sollten die Sachen natürlich zusammen gehören, wäre eine struct möglich. Aber auf Teufel komm raus eine struct zu verwenden ist blödsinn.
-
Shade Of Mine schrieb:
ich finde die 'nicht struct' Lösung besser.
Denn man muss nicht sinnlose structs erzeugen, wenn man unabhängige Werte hat.Es ist aber schneller, weil nur ein Parameter übergeben werden muß
-
der vorteil geht wieder flöten, weil du vorher die struct füllen musst, wenn du nur für diesen zweck extra eine anlegst.
wie Shade Of Mine schon sagt..
-
Wenn man 2 Rueckgabewerte hat, kann man auch std::pair verwenden:
#include <map> #include <iostream> using namespace std; pair<int, string> f() { return make_pair(10, "Hallo"); } int main() { pair<int, string> x = f(); cout << x.first << " " << x.second << endl; }
Die Boost-Lib hat genau dazu einen noch praktischeren Datentyp parat ("Tupel" oder so).
-Gunnar
-
(So, jetzt habe ich mich endlich mal eingeloggt, damit ich zukuenftige unsinnige Beitraege selber loeschen kann. Sorry!)
-
lol
-
c.rackwitz schrieb:
der vorteil geht wieder flöten, weil du vorher die struct füllen musst, wenn du nur für diesen zweck extra eine anlegst.
Das mach keinen Unterschied. Die Variablen müssen auch angelegt und befüllt werden. Nur muß man bei einzelnen Variablen pro Variable einen Pointer übergeben. Das ist bei vielen Werten relativ schlecht. Übrigens: Die C++ Lösungen hier sind noch schlechter, weil C++ Objekte einen größeren Overhead mit sich bringen, Konstruktoren aufgerufen werden usw.
-
außerdem sind wir hier in ansi c, da gibts keine aufgeblasene STL