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


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an