Return-Werte - allgemeine Frage
-
Programme, Funktionen müssen ja nicht zwingend return-Werte zurückliefern. Sie könnten aber.
Ist das nun 'besser' oder 'schlechter' für den compiler oder die Stabilität der SW? Woring liegt der Unterschied oder Sinn wenn man das macht?
-
Normalerweise macht das nicht wirklich einen Unterschied. Eine void-funktion liefert einfach grundsätzlich den Wert 0 zurück. Allerdings ist eslaut Strukturierter Programmierung erwünscht, dass Funktionen Rückgabewerte haben.
Anders herum sind Rückgabewerte in der objektorientierten Programmierung eigentlich nicht erwünscht. Hier soll man eigentlich über Statusflags in der Klasse gehen..
Ich gestehe, dass ich das noch nie eingehalten habe
-
Original erstellt von mismatch:
Ist das nun 'besser' oder 'schlechter' für den compiler oder die Stabilität der SW? Woring liegt der Unterschied oder Sinn wenn man das macht?Wenn es Ergebnisse von einer Operation gibt, dann liefere einen Wert zurück.
Wenn nicht, dann liefere keine.
Versuche nicht, sowas über eine pauschale Regel zu erschlagen.
-
Original erstellt von <DocJunioR>:
Normalerweise macht das nicht wirklich einen Unterschied. Eine void-funktion liefert einfach grundsätzlich den Wert 0 zurück.Nein gar keinen. Würdest du den Compiler allerdings irgendwie überlisten und den nichtvorhandenen Rückgabewert auswerten wollen, z.b. indem du die void-Funktion in einer anderen Übersetzungseinheit definierst und die Rückgabetypen der Prototypen nicht übereinstimmen, würde ganz sicher nur in zufälligen Ausnahmefällen 0 zurückkommen.
Allerdings ist eslaut Strukturierter Programmierung erwünscht, dass Funktionen Rückgabewerte haben.
Nicht in der strukturierten Programmierung ... in der funktionalen (Haskell, ML, Scheme ...). Guck dir Pascal als Beispiel einer strukturierten Programmiersprache an: Im Gegensatz zu z.B. C hat der Zuweisungs"operator" keinen Rückgabewert, d.h. er ist im eigentlichen Sinne nichtmal ein Operator. Desweiteren wird oftmals stilistisch eher eine Prozedur mit Call-by-Reference als eine Funktion benutzt.
-
Ok, danke an alle