Hi, ich bin mit der Sprache C noch nicht ganz vertraut und habe mir das Buch "C für Mikrocontroller" gekauft. Dort ist ein Beispiel-Quelltext drin, welchen ich nicht ganz kapiere. int GetMax( int y, int z) { if (y>z) return y; return z; } Logisch, daß y rückgegeben wird, wenn y größer z ist. Aber wann wird die dritte Zeile (return z) ausgeführt? Fehlt da nicht ein else? Armin
Nein, denn wenn y<z, so wird 'return y;' nicht ausgefuehrt. Ueberleg mal was ein if sonst ueberhaupt bringen wuerde. Vielleicht fehlen dir da irgendwelche Klammern, das ganze kann man natuerlich auch als if (y>z){ return y; } return z; schreiben. Das macht hier aber nicht wirklich sinn, da bei positivem vergleich immer die Anweisung nach dem if ausgefuehrt wird. Die Klammern bilden nur einen block, effektiv ist das dann auch nur eine Anweisung. Das else dass dir abgeht waere z.b hier von noeten: int GetMax( int y, int z) { int max; if (y>z) max = y; else max = z; return max; } Uebrigens, es gibt excellente Buecher ueber C, auch online material ist (in massen) zu haben, z.b http://www.cprogramming.com mfg
@Armin: Da durch das erste return bereits die Funktion verlassen wird, wird das zweite return sowieso nicht ausgeführt und man kann sich das else sparen.
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.