return
-
wenn du sie vorzeitig verlassen möchtest schon.
-
nur wenn man die Funktion bis zum Ende durchlaufen will. Was is aber, wenn du aus irgendwelchen Gründen u.U. die Funktion eher verlassen willst -> Antwort: return;
-
danke.
-
Gut erkannt Sherlock, viele Compiler unterstützten das auch für andere Typen und meckern net wenn kein return da ist.
-
fast vergessen, man soll eigentlich die Funktion auf mehrere Stellen vorzeitig verlassen, es soll auf eine gemeinsame Stelle sein.
-
netrobot schrieb:
fast vergessen, man soll eigentlich die Funktion auf mehrere Stellen vorzeitig verlassen, es soll auf eine gemeinsame Stelle sein.
Meint jetzt genau was?

-
z.B.
void choose(char const& inputChar) { if (inputChar == 'a') { //do nothing return ; } if (inputChar == 'b') { f1(); return; } }es gibt 2 "return" auf verschiedenen Stellen.
es wär besservoid choose(char const& inputChar) { if (inputChar == 'a') { //do nothing } else if (inputChar == 'b') { f1(); } return; }
-
Sicher richtig. Aber z.B.
FILE *f; if ((f = fopen("bla", "r"))) { if (message != NULL) { if (fwrite(message, strlen(message), 1, f) == 1) { fclose(f); } else .... } else .... } else ....finde ich schlimmer als
if (!(f = fopen("bla", "r"))) return; if (message == NULL) return; ....Und ja es gibt Leute die so (oben) programmieren!

-
kann ich so verstehen, das ist nur eine Frage des Programmierstils. Es gibt keine Stuation, in der man unbedingt einfach "return;" schreiben muss
-
Bei der Rückgabe von (komplexen) Werten kann die ReturnValueOptimization (RVO) u.U. besser zuschlagen, wenn es nur einen Endpunkt gibt.
Der Rest ist Stilfrage und da scheiden sich auch die Geister.
-
statt
int main() { return 0; }darf ich eigentlich auch schreiben
void main() { return; }was für einen Wert bekommt das System als Returnwert?
-
Die zweite Variante ist schlicht und einfach falsch

MfG SideWinder
-
Eigentlich darf man das nicht - main soll per Standard int zurückliefern. Aber vermutlich dürfte dein Code den Wert 0 ans OS weitergeben.
-
netrobot schrieb:
darf ich eigentlich auch schreiben
void main() { return; }was für einen Wert bekommt das System als Returnwert?
Nö darfst du nicht. Steht hässlicherweise aber sogar in so einigen Lehrbüchern.
Bei int main()
{
}darfst du das das return weglassen, dann wird automatisch return 0 angenommen. Aber nur in main!
-
Darfst du in C++ eigentlich nicht, weil im Standard int main als Einsprungfunktion genannt ist!!
Aber die main hat eine Besonderheit, man muss am Ende kein return schreiben, da wird dann für gesorgt, das 0 für kein Fehler zurück gegeben wird.