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.
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.
Dietmar P. schrieb: > In der der Literatur steht bei mir immer return mit einem Rückgabewert, > also Das wage ich zu bezweifeln ;-) Dietmar P. schrieb: > Mein Compiler meckert > es nicht an. Ja, da hat er auch keinen Grund zu. Wie sonst sollte man eine void-Funktion verlassen können?
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.
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.
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 :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.