Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

31

27.04.2012, 21:13

Man beachte das "Prinzipiell"... Ich wollte es nur auf den Punkt bringen, weil ich das Gefühl hatte das um den heißen Brei geredet wird,
anstatt es auf Klartext zu sagen...

Btw.
Zu sagen das mein ganzer Beitrag "Quatsch" ist, finde ich etwas dreist... Aber das nur am Rande... :thumbdown:

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

32

27.04.2012, 22:32

Ja, sorry.

Ich wollte noch gesagt haben, dass Visual Studio den Rückgabewert eines Programms auswertet.
Wenn man nämlich ein Build-Event benutzt (Pre Build, Post Build), dann wird der Rückgabewert des dort eingetragenen Kommandos auf 0 geprüft.
Ist er nicht 0, dann bekommt man eine schöne Fehlermeldung unten in der Compiler-Ausgabe:

Quellcode

1
error MSB3073: The command ""D:\Benutzer\David Scherfgen\Desktop\Ret1.bat"" exited with code 1.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

33

29.04.2012, 14:47

Weil es dafür eben doch eine Konvention gib. Das hat halt alles seine Zeit gedauert aber mittlerweile ist es so. Natürlich gibt es niemanden der sagt, ein Programm muss sich so und so verhalten, aber es sollte. Und dadurch, dass sich die Leute daran halten, profitiert man im allgemeinen davon. An sich würde ich behaupten, kommt das aus der Zeit in der es keine Exceptions gab. Man musste irgendwie festlegen wie Funktionen einen Fehler bemerkbar machen. Und jedes einzelne Programm kann ja wieder als neue Funktionalität in einem neuen Programm benutzt werden. Frei nach der Unix Philosophie "do one thing do it well". Dadurch macht es dann nämlich schon Sinn, wenn auch die Mainfunktion so einen Wert zurück liefert. Ob das nun für Spiele wichtig ist oder eben nicht steht ja nicht zur Debatte. Arbeite dein Buch einfach weiter und mach weiter. Irgendwann wirst du ein besseres Verständnis für so etwas kriegen. Das ist an sich wirklich nichts womit man sich lange aufhalten muss. Auch eben weil es mittlerweile bessere Möglichkeiten für Fehlersignalisierung gibt.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

34

29.04.2012, 16:15

Weil es dafür eben doch eine Konvention gib. (...) Natürlich gibt es niemanden der sagt, ein Programm muss sich so und so verhalten (...)

Du widersprichst Dich da.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

35

29.04.2012, 16:23

@BlueCobold
...so und so verhalten, aber es sollte.

Konvention ist keine Pflicht.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

36

29.04.2012, 17:47

Wenn es eine Konvention wäre, dann gäbe es jemanden, der das sagt. Es ist nirgendwo festgeschrieben, was ein Programm zurückgeben sollte. Klar, es hat sich eingebürgert, aber es ist eben keine Konvention. Aber lassen wir das. Es sollte ja nur klar gemacht werden, dass es zurückgeben kann, was immer er für richtig oder sinnvoll hält. Wenn er nichts für sinnvoll erachtet, dann ist wie d0t schon sagte für ihn wohl void vorzuziehen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

37

01.05.2012, 22:10

dann ist wie d0t schon sagte für ihn wohl void vorzuziehen.

Autsch, böser Fehler. Kein return heißt nicht, dass die Funktion void ist. Die main-Funktion gibt in C++ immer einen int zurück. Ohne ein return ist dieser Wert laut Standard 0.
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

38

01.05.2012, 22:14

Ich sagte nur einfach kein return in main, nicht dass er void main() schreiben soll ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

39

02.05.2012, 07:40

dann ist wie d0t schon sagte für ihn wohl void vorzuziehen.

Autsch, böser Fehler. Kein return heißt nicht, dass die Funktion void ist. Die main-Funktion gibt in C++ immer einen int zurück. Ohne ein return ist dieser Wert laut Standard 0.

Ich sagte nicht, dass er die Methode void machen soll. Wenn er explizit nichts zurück gibt, gibt er void(=nichts, leer, Leere) zurück. Was das dann implizit ist, das kann ihm egal sein.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige