Re: Standard für Rückgabewerte bei Funktionen in C?
Hallo,
Am Dienstag, 02. Mai 2006, 20:37:20 +0200 schrieb Andreas Brillisauer:
> eine Frage an die C-Programmierer unter euch: Es geht um Funktionen, die
> durch Ihren Rückgabewert anzeigen, ob die Funktion erfolgreich
> abgearbeitet wurde oder ob ein Fehler aufgetreten ist. Gibt es hier
> einen Standard für den Rückgabewert? Ich habe schon folgende beiden
> Varianten gesehen:
>
> * 0 bei Erfolg und 1 bei Fehler
> * 1 bei Erfolg und 0 bei Fehler
>
> Die main-Funktion sollte zumindest unter Linux bei Erfolg 0 zurückgeben.
> Dazu eignen sich die Konstanten EXIT_FAILURE und EXIT_SUCCESS aus
> stdlib.h. Aber wie sieht es bei Funktionen innerhalb eines Programms
> aus? Hier sind diese Konstanten meines Wissens nicht angebracht.
In C und C++ gelten 0 => false, alle anderen Zahlenwerte =>
true. So wird in `if' und `while' ausgewertet. Beispiel:
int i;
i=5;
while (i) { ...; i--; } // macht ... 5 mal
Shell-Befehle, also auch der Rückgabewert von `main()'
fassen das Ergebnis genau andersherum auf. Mir persönlich
gefällt das besser, denn eine Sache kann auf genau eine Art
richtig sein, aber auf viele Arten falsch.
Der Weg von C/C++ hat sicher auch seine Vorzüge, es lohnt
sich aber nicht, darüber zu philosophieren, denn niemand
denkt daran, etwas umzudefinieren.
Bertram
--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de
Reply to: