[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: