Sinnvoller Rückgabewert

Gast #3795214
Lesenswert?

Was ist sinnvoll für einen Rückgabewert.
Brauche jeweils einen für erfolgreich abgearbeitet sowie vorzeitig 
abgebrochen.

Sicherlich kann ich nun return 1 oder 0 machen, nur was ist so das 
gängige Verfahren?

return 1  // wenn ausgeführt wurde
return 0  // wenn es abgebrochen wurde

?
Gast #3795229
Lesenswert?

Meistens nimmt man negative Werte für Fehler und 0 für OK. Kannst du 
aber halten wie du willst.

Vielleicht willst du aber auch noch unterscheiden, wo der Fehler 
passiert ist, oder Fehlerklassen (z.B. tolerant weitermachen oder ganze 
Aktion abbrechen). Wenn du z.B. int als Rückgabetyp nimmst, kannst du 
damit ja schon eine ganze Menge "kodieren".
Gast #3795261
Lesenswert?

Danke.
Umfangreiche Fehlercodes gibt es nicht. Es gibt nur die Unterscheidung, 
ob Wert kleiner oder größer ist als der gewünschte Bereich.
-2 // Wert unterschritten
-1 // Wert überschritten
 0 // Wert iO

reicht hier aus.
Persönliche Seite #3795629
Lesenswert?

Wenn Du in C programmierst und wirklich nur OK und Fehler zurückgeben 
willst, verwendest Du 0 für Fehler und 1 für OK.

Beispiel:
1
int funktionErfolgreich() {
2
   ...
3
   return 1;
4
}
5

6
if (funktionErfolgreich()) {
7
  ...
8
}
9

10
...
11
if (!funktionErfolgreich()) {
12
  ...
13
}

Auf diese Art sparst Du dir die Vergleichsoperation.
1
if (funktionErfolgreich() == 1) {
Liest sich nicht so flüssig.

Alternativ (also in Deinem Fall) kann man auch sehr gut ENUM verwenden.
1
if (torSchliessen() == TOR_GESCHLOSSEN) {
2

3
}
4
...
5
if (torSchliessen() == TOR_KLEMMT) {
6

7
}

Nimm sinnvolle Namen. Dann ist der Code auch flüssig lesbar.

Auch fallen Tippfehler schneller auf.
1
if (funktion() == -3) { ...
Ist so weit korrekt - auch wenn -3 nicht als Rückgabe existiert.
"TOR_KEMT" wird Dir aber gnadenlos um die Ohnen gehauen.
Gast #3796524
Lesenswert?

Walter Tarpan schrieb:
> eagle user schrieb:
>>> verwendest Du 0 für Fehler und 1 für OK.
>>
>> sag bitte, dass das ein Tippfehler war.
>
> Tja....da gibt es zwei Philosophien mit jeweils negierter Logik.

da können wir ja froh sein, dass Computer nur 0 und 1 kennen.
oh, Moment...


FunFact: unter VMS gilt: 1 = OK, 2,4,6... = Fehler, 0 = undefiniert :)
#3796529
Lesenswert?

Mehrle schrieb:
> Danke.
> Umfangreiche Fehlercodes gibt es nicht. Es gibt nur die Unterscheidung,
> ob Wert kleiner oder größer ist als der gewünschte Bereich.
> -2 // Wert unterschritten
> -1 // Wert überschritten
>  0 // Wert iO
>
> reicht hier aus.

Dann kannst du auch
  -1 // Wert unterschritten
   0 // Wert iO
  +1 // Wert überschritten
nehmen.

Ist evtl. intuitiver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren