Funktion beenden mit return

OP #1698188
Lesenswert?

Hallo,

habe schon wieder eine Frage zum Syntax von GCC.

Ich möchte eine Unterfunktion, die ich im main aufrufe beenden, z.B.

  if (wert == 0){
      return;
      }

In der der Literatur steht bei mir immer return mit einem Rückgabewert, 
also
z.B. "return 0;"

Ich brauche keinen Rückgabewert und will nur die Funktion nicht kpl. 
durchlaufen, kann ich dann auf die "0" verzichten? Mein Compiler meckert 
es nicht an.
Moderator Persönliche Seite #1698192
Lesenswert?

Eine Funktion, die keinen Rückgabewert haben soll, bekommt als Typ
ein "void".  Dies zeigt dem Compiler explizit an, dass kein Wert
zurück gegeben werden darf, und dass auch nicht versucht werden
darf, einen Rückgabewert von der Funktion zu erhalten.

Selbstverständlich darf in so einem Fall dann das return nicht von
einem Ausdruck gefolgt werden.
Gast #1698198
Lesenswert?

Ob du einen Wert zurück gibst oder nicht, hängt davon ab welchen 
Rückgabetyp deine Funktion hat.

return ohne Wert ist nur bei void Funktionen zulässig.

Schau dir das Compilieren nochmal mit -Wall an.
#1698396
Lesenswert?

Dietmar P. schrieb:
> OK, verstanden.
>
> Vielen Dank für Eure Antworten.
>
> Das mit dem void hatte ich schon verstanden, aber in meinen Unterlagen
> war immer return mit Rückgabewert erklärt und daher verunsichert.

An dieser Stelle hättest du es sogar einfach nur ausprobiern brauchen.
Der Compiler hätte dir da schon auf die Finger geklopft :-)

(Aber das ist nur ausnahmsweise. Selbstverständlich wird im Allgmeinen 
nicht einfach nur wild drauf los probiert :-)

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