Schulaufgabe
-
bstanger schrieb:
while (foo=0)- Nochmal genau anschauen. Wie sieht ein Vergleichsoperator aus?
- Merken was falsch ist.
- In den Hintern beißen.
- NIE wieder machen

Einmal passiert das jedem, danach sollte mans gelernt haben

-
vielen Dank :).
Ich bin dabei ;). Wir hattens letztes Jahr schon gemacht aber jetzt waren 6 Wochen Pause da vergisst man einiges wieder, jetzt fangen wir wieder ganz sanft da an wo wir letztes Jahr aufgehört haben ;).
-
Und siehe da, das ganze funktioniert auch noch

-
Gibt denn Dein Compiler keine Warnung in solchen Fällen aus?
GCC sagt dazu:
Warnung: Um Zuweisung, die als Wahrheitswert verwendet wird, werden Klammern empfohlen
-
Also grundsätzlich werden Warnungen ausgegeben. Aber bei mir irgendwie nicht. Früher haben wir mit Borland gearbeitet, der hätte mir das angekreidet. Aber Codeblocks nicht.
-
Kann mir schnell jemand erklären was return 0 tut??
Uns hat man gesagt: Gibt die Befehlsgewalt an die nächst höhere Instanz weiter.
Das hab ich nicht verstanden, was ist damit gemeint??
Ich will keinen neuen Thread deswegen aufmachen.Gruß Benjamin
-
Wenn das Programm beendet wird kannst du den Rückgabetyp auslesen, zB mit einem Skipt und so sehen ob alles in Ordnung ist oder andere Interger werte rückgeben die Bedeutungen nach deinen WÜnschen haben:
666: strg+c gedrückt
0: normal beendet
999: programm gekillt
-
Ganz allgemein beendest du mit return eine Funtion. Dann kann man zusätzlich, wenn die Funktion dafür gedacht ist ( sprich die Funktiondeklaration passt) einen Wert zurückgeben. Im Falle von main ist das ein Integer. Und 0 impliziert hier ein gelingen der Funktion. (Andernfalls kann ein Applikationspezifscher Rückgabewert zurückgegeben werden z.B -1).
Das geht natürlich mit beliebigen Funktionen:
void foo () { if ( .. ) return; if ( .. ) return std::cout << "hmm"; }Im Falle von void als Rückgabetyp kannst du ein return vernachlässigen. Wenn du aber dennoch die Funktion früher beenden möchtest, dann kannst du einfach ein return benutzen.
int bar () { if ( .. ) return 0; // gelingen return -1; // irgend ein Fehler passiert }Das ist die übliche Verwendung von Rückgabewerten in C Code. (In C++ würde man hier eher exceptions benutzen und die Rückgabewerte für etwas sinnvolleres benutzen).
-
pumuckl schrieb:
bstanger schrieb:
while (foo=0)Einmal passiert das jedem, danach sollte mans gelernt haben

ähm. Als Tippfehler hab ich das aber auch noch manchmal
-
Tim06TR schrieb:
pumuckl schrieb:
bstanger schrieb:
while (foo=0)Einmal passiert das jedem, danach sollte mans gelernt haben

ähm. Als Tippfehler hab ich das aber auch noch manchmal
Er meint wohl diejenigen, die nicht verstehen warum "=" in so einem Kontext falsch ist.