+- +-

Benutzer

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?

Autor Thema: ZZ++  (Gelesen 7165 mal)

Zippozipp

  • Mein Pupu schmeckt nach Schoko
  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 1.722
  • Paria und Königsmörder
    • Profil anzeigen
ZZ++
« am: 16. Juli 2007, 19:16:16 »
Sodale, es geht an. Da ich keinen Bock habe extra eine Blogseite einzurichten werde ich Euch in Zukunft in diesem Thread hier mit meinen gloreichen Fortschritten mit C++ beglücken.

Hier auch gleich das erste Produkt meiner Lernbemühungen...und jaaaa, ich weiß, ich habe cin zweckentfremdet  :biggrin: aber so geht die "Dosbox" erst zu, wenn man Enter drückt.

Gray

  • Emotionaler Hobgoblin
  • Boardmonster
  • Beiträge: 3.824
  • personal text.. hmmm
    • Profil anzeigen
Re: ZZ++
« Antwort #1 am: 16. Juli 2007, 19:26:03 »
HAX! VIRII! PR0N!




Ska-Ska

  • Trident Vollmitglied
  • Buchstabenmillionär
  • Beiträge: 1.122
    • Profil anzeigen
Re: ZZ++
« Antwort #2 am: 16. Juli 2007, 19:31:39 »
Hallo Zippozipp!

Mühsam ernährt sich das Eichhorn
"I'm reliable sources, I'll tell ya anything you want me to know."

Zippozipp

  • Mein Pupu schmeckt nach Schoko
  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 1.722
  • Paria und Königsmörder
    • Profil anzeigen
Re: ZZ++
« Antwort #3 am: 16. Juli 2007, 19:33:01 »
Jede lange Reise beginnt mit einem ersten Schritt, nicht wahr?

Ska-Ska

  • Trident Vollmitglied
  • Buchstabenmillionär
  • Beiträge: 1.122
    • Profil anzeigen
Re: ZZ++
« Antwort #4 am: 16. Juli 2007, 19:37:00 »
Stimmt, das passt besser  :aww:
"I'm reliable sources, I'll tell ya anything you want me to know."

Itchy

  • Administrator
  • Boardmonster
  • Beiträge: 5.862
    • Profil anzeigen
Re: ZZ++
« Antwort #5 am: 16. Juli 2007, 19:39:42 »
Bah, das ist ja nur ein kompiliertes Binary. Poste doch lieber den Code, dann kann man da auch noch Kommentare dazu abgeben.

Zippozipp

  • Mein Pupu schmeckt nach Schoko
  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 1.722
  • Paria und Königsmörder
    • Profil anzeigen
Re: ZZ++
« Antwort #6 am: 17. Juli 2007, 01:54:07 »
Ich dachte ausgerechnet bei DIESEM Beispiel wäre der Code noch egal  ::)
Aber mir isses wurst, bei den weiteren Ergebnissen kommt der dann eh immer mit dazu.

Itchy

  • Administrator
  • Boardmonster
  • Beiträge: 5.862
    • Profil anzeigen
Re: ZZ++
« Antwort #7 am: 19. Juli 2007, 11:45:31 »
Klar, dass in dem Code keine Offenbarung drin sein wird. Trotzdem kann ich da schon mal anmerken, dass ein "return 0;" am Ende eher unschön ist, da Du einfach davon ausgehst, dass 0 der Wert für erfolgreiche Ausführung ist. Das mag zwar in allen mir bekannten Plattformen richtig sein, sauberer wäre es aber trotzdem, am Anfang die cstdlib zu includen und dann ein "return EXIT_SUCCESS;" zu benutzen (und im Fehlerfall entsprechend ein EXIT_FAILURE).


Zippozipp

  • Mein Pupu schmeckt nach Schoko
  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 1.722
  • Paria und Königsmörder
    • Profil anzeigen
Re: ZZ++
« Antwort #8 am: 19. Juli 2007, 12:18:36 »
Warum? Nach dem was ich bis dato gelesen habe ist das return 0; nur damit main überhaupt irgend etwas zurückgibt, bei 0 eben nichts. Oder verstehe ich da was falsch!?

Itchy

  • Administrator
  • Boardmonster
  • Beiträge: 5.862
    • Profil anzeigen
Re: ZZ++
« Antwort #9 am: 19. Juli 2007, 13:43:50 »
Nein, der Rückgabewert der main() ist der Wert, den das Programm beim Beenden an das aufrufende Programm (also z.B. der Shell) zurückgibt.

Die Konstante EXIT_SUCCESS (üblicherweise mit 0 belegt), bedeutet dabei "alles ok". Ein EXIT_FAILURE (normalerweise 1) bedeutet dagegen "Fehler aufgetreten". Dieser Code kann beim Zusammenspiel von mehreren Programmen also sehr wichtig sein.

"Nichts zurückgeben" gibt es in C übrigens nicht. Im besten Falle ist der Rückgabewert nicht definiert - wenn Du kein return Statement angibst, gibt die Funktion gerade den Wert zurück, der dort im Speicher auf dem Returnstack liegt.

Shadowcaster

  • Trident Vollmitglied
  • Boardmonster
  • Beiträge: 4.195
  • You are likely to be eaten by a grue.
    • Profil anzeigen
Re: ZZ++
« Antwort #10 am: 19. Juli 2007, 13:52:28 »
Bei einem Shellprogramm gibt es etwas mehr wie 0 und 1, weil man nämlich in einem Skript die Errorlevels abfragen und entsprechend reagieren kann: Errorlevels.
Deswegen ist die int Rückgabe auch durchaus gebräuchlich.


Zippozipp

  • Mein Pupu schmeckt nach Schoko
  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 1.722
  • Paria und Königsmörder
    • Profil anzeigen
Re: ZZ++
« Antwort #11 am: 19. Juli 2007, 22:29:19 »
...Die Konstante EXIT_SUCCESS ... EXIT_FAILURE...
Sind das Compiler Macros? Weil ich finde dazu in allein meinen 3 Büchern nichts. FALLS es welche sind habe ich nur den Vermerk im easy C++ Buch, dass sowas nur bei C Sinn macht und bei C++ eben nicht. Dazu ist in allen C++ Büchern und auch den Onlinekursen, die man so frei einsehen kann (z.B. unter c-plusplus.de) immer main mit return 0; abgeschlossen (insofern main nicht wirklich etwas zurückgeben soll).

Aber im Endeffekt habe ich gar nicht so recht den Plan was ihr meint, ich kann ja erst einmal nur nach meinen Büchern hier gehen. Und bitte seht das nicht als Undankbarkeit, ich freue mich schon über Tips, nur diesem kann ich grade einfach nicht so recht folgen weil er einfach meinen "Lehrmaterialien" widerspricht bzw. in diesen (in keinem der Bücher) vorkommt.

Und glaubt ja nicht ich mache es mir leicht damit hier zu widersprechen, ich bin mir wohl bewusst, dass ich früher oder später bei tiefergehenden Konzepten auf Eure Hilfe angewiesen sein werde.

Itchy

  • Administrator
  • Boardmonster
  • Beiträge: 5.862
    • Profil anzeigen
Re: ZZ++
« Antwort #12 am: 19. Juli 2007, 23:09:48 »
Ja, das sind Makros und wer auch immer schreibt, dass Makros in C++ keinen Sinn machen, hat entweder einen an der Klatsche und meint das in irgendwelchen speziellen zusammenhängen.

Zippozipp

  • Mein Pupu schmeckt nach Schoko
  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 1.722
  • Paria und Königsmörder
    • Profil anzeigen
Re: ZZ++
« Antwort #13 am: 20. Juli 2007, 01:05:53 »
Von "keinen Sinn" hat niemand was gesagt, nur von "weniger...als". Ich habe grade mal fix durchgeblättert aber die Textstelle so auf die Schnelle nicht finden können. Ich schau morgen bei Tageslich noch mal in Ruhe und sage hier nochmal was dazu, so rede ich nur wie ein blinder von der Farbe.

Fakt ist, egal welches Lehrwerk zu C++ ich mir anschaue ich finde überall das return 0; in main insofern main nichts zurückliefern soll. Das muss doch einen Grund haben!?

Des Rätsels Lösung könnte natürlich auch sein, dass das was ihr hier ansprecht ein so fortgeschrittenes oder spezielles Konzept (für C++) ist, dass es überall zu Beginn aus gutem Grund erst einmal weggelassen wird.

Zippozipp

  • Mein Pupu schmeckt nach Schoko
  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 1.722
  • Paria und Königsmörder
    • Profil anzeigen
Re: ZZ++
« Antwort #14 am: 20. Juli 2007, 03:48:22 »
*grml* das hat mich jetzt nicht mehr losgelassen, ich musste doch gleich wühlen  :whistle1:

Ich habe auch etwas gefunden wegen dem return 0; und zwar in easy C++ auf Seite 73.
Zitat
C++ verlangt nämlich, dass die main()-Funktion mit einer return-Anweisung beendet wird, die einen Ergebniswert zurückliefert.
Das klingt für mich als MUSS immer per return etwas übergeben werden. Im Folgetext geht es dann darum, wenn nichts sinnvolles dann eben 0 zu übergeben.
Wenn ich das falsch lese/verstehe klärt mich bitte auf, ggf. haben wir ja auch aneinander vorbei geredet bzw. ich habe Euch vollkommen falsch verstanden und ihr meintet was ganz anderes!?

Zu den Macros habe ich übrigens auch noch was gefunden, nämlich ein Zitat von Bjarne Stroustrup, dem Erfinder von C++ und zwar in der Einführung in ISO-C++ von Holger Jakobs (freies E-Book) auf Seite 6.
Zitat
Die wichtigste Regel bei Macros ist: Benutze keine, es sei denn, es ist unabdingbar. Fast jedes Macro demonstriert eine Schwäche in der Programmiersprache, im Programm oder beim Programmierer.
« Letzte Änderung: 20. Juli 2007, 03:53:23 von Zippozipp »

 

Benutzer Online

247 Gäste, 0 Mitglieder
Powered by EzPortal