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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.