Void vs. Int als Rückgabewert
-
Hi
Gibt es einen Grund, nicht jeder Funktion eine int als Rückgabewert zu geben, wenn sie keinen anderen hat, statt void?
Also so wie bei der:int Main()"Kostet" return 0; etwas?
-
return 0; soll dem betriebsystem glaube ich sagen das alles gut gegangen ist, bei shellscripts ist das glaub ich wichtig, oder falls du ein programm mit system() aufrufst.
Kosten tuts wahrscheinlich schon etwas, allerdings ist das so wenig das man das vernachlässigen kann.Das sind jetzt mal reine Vermutungen, genau weiß ich es auch nciht.
-
Ja, wenn ich das nun in jeder Funktion mach, kann ich Programm intern besser abfragen was läuft, oder eben nicht.
Oder macht das nur bei zB einlesen von Dateien Sinn?
Bei SDL macht man das doch für die Init und IMG_Load..
-
Es macht überall da sinn, wo etwas schieflaufen kann.
wenn eine Funktion nur etwas ausgibt muss man nicht überprüfen ob alles korrekt war, wenn man jedoch speicher anfordert oder eine datei ausließt macht es sinn zu überprüfen ob der Vorgang erfolgreich war.
-
Wenn du nen Statuscode zurückgeben möchtest, dann nimmst du int und wenn es nichts zum zurückgeben gibt, dann nimmst du void.
-
Storm.Xapek.de schrieb:
Es macht überall da sinn, wo etwas schieflaufen kann.
wenn eine Funktion nur etwas ausgibt muss man nicht überprüfen ob alles korrekt war,Ach ja? Und was ist, wenn es ein Problem mit cout bzw. stdout gibt? :p
-
Bitte keine Fehlercodes in den Rückgabetyp, es sei denn, es ist ein erwarteter Fehler. Für die unerwateten sind Exceptions da.
-
Mal eben ganz dumm frag:
Wieso macht die SDL dass denn?
-
is die SDL ned C ?
in C gibts keine Exceptions ...
gruessle
-
ah doch da war was, danke.
@michael was spricht dagegen? oder ist das ne stilfrage?
-
Natürlich kannst du auch weiterhin wie in C mit Statuscodes arbeiten. Aber dann können Fehler übersehen werden, wenn du z. B. einfach mal nicht auf Fehler überprüfst.
Exceptions bieten dir ein starkes Sprachmittel zur Fehlerbehandlung, beispielsweise ändert sich der Codefluss, wenn eine Exception geworfen wurde. Beschäftige dich mit ihnen, und du wirst schon bald die Vorteile feststellen.
-
Nur sollte man davon absehen alles mit ner Exception zu lösen, gibt auch genügend Fehler mit denen man rechnen kann bzw. die man erwarten kann.
-
Michael E. schrieb:
Natürlich kannst du auch weiterhin wie in C mit Statuscodes arbeiten. Aber dann können Fehler übersehen werden, wenn du z. B. einfach mal nicht auf Fehler überprüfst.
Exceptions bieten dir ein starkes Sprachmittel zur Fehlerbehandlung, beispielsweise ändert sich der Codefluss, wenn eine Exception geworfen wurde. Beschäftige dich mit ihnen, und du wirst schon bald die Vorteile feststellen.
hmja danke, werds wohl schon mit exeptions machen.
wollt nur wissen, ob es schlimm ist, ein int zurückzugeben, wos nicht gebraucht wird.