Autor | Beitrag |
---|
000 08.02.2013, 14:03 Raziel |
Hallo zusammen, vielleicht liest dies hier noch jemand, bisher habe ich hier immer hilfreiche Antworten bzgl. C und Programmierung bekommen. Folgendes: Jetzt ist mir nicht ganz klar, wann ich welches Makro benutzen sollte. EXIT_FAILURE ist soweit klar, zum Beispiel wenn eine Datei per fopen nicht geöffnet oder kein Speicher per malloc reserviert werden kann usw. Also bei fehlerhaften Verhalten. EXIT_SUCCESS kommt zum Einsatz, wenn alles erfolgreich durchgelaufen ist, zum Beispiel am Ende von main. Jetzt ein paar Unklarheiten:
Nächster Fall: wie und wo steige ich aus einem Programm aus?
Bin dankbar für jeden Tipp! Grüße -- |
Profil || Suche |
001 08.02.2013, 19:20 theDon |
EXIT_FAILURE, weil das Programm nicht erfolgreich durchegelaufen ist. Nicht nur ist das nicht sinnvoll, es beendet auch weder das Programm, noch ist es standardkonform; exit(EXIT_FAILURE) bietet sich hier an. -- \o tanz den naziprau! o/ And more than ever, I hope to never fall, |
Profil || Suche |
002 08.02.2013, 20:57 Raziel |
Danke für deine schnelle Antwort. Du hast Recht: mit der return Anweisung verlasse ich nur die Funktion foo und beende nicht das Programm - soweit hatte ich nicht gedacht. Dann werde ich nun in Zukunft mit exit() arbeiten, wenn es sich anbietet. -- |
Profil || Suche |
003 10.02.2013, 21:23 Kriz |
Diese Art der Programmierung solltest du schnell knicken, sprich aus Funktionen mit exit() aussteigen ist wie bei 100 km/h den Rückwärtsgang einlegen! --K:R-I)Z++ |
Profil || Suche |
004 11.02.2013, 17:19 Raziel |
Was würdest du empfehlen? Ausstieg aus dem Programm nur in der main Funktion und Funktionen, die zu einem Abbruch führen könnten per Rückgabewert prüfen (ähnlich wie fopen auf Rückgabewert NULL)? Gibt es generell (offizielle) Guidelines zum Programmaufbau/-ablauf in C? Hab schon gesucht, aber nichts handfestes finden können. -- |
Profil || Suche |
005 11.02.2013, 18:15 Alcapone |
Du hast eben das Problem, wenn du mitten in einer Funktion die exit() methode aufrufst, werden die mit malloc allozierten ressourcen nicht mehr frei gegeben (z.B. bleiben Dateien, auf die du zugreifst, gelockt oder Ports, die du geöffnet hast bleiben blockiert). "Everything, that can go wrong, will go wrong" Murphy's Law |
Profil || Suche |
006 20.02.2013, 14:35 Raziel |
Habe mittlerweile einige Artikel dazu gelesen und festgestellt, dass es etliche Wege gibt, ein Programm übersichtlich zu schreiben. Hauptsache man bleibt konsequent ;) -- |
Profil || Suche |