Ich grüße euch.
Nur so am Rande, aber wichtig: Herzlich willkommen im Forum Jung.
Das mit dem ';' kann ich mal versuchen zu klären:
In C wird grundsätzlich hinter jedes Kommando ein ; angegeben. Damit ist es dann erlaubt, dass Kommandos in einer Zeile stehen und der Compiler das auch trennen kann.
Also z.B.:
Code:
a = 5; Init (); b = 9; if (a == b) StatusLED (GREEN);
Eine große Falle ist das "if (...)" oder auch "while (...)" und "else" und auch "for (...)"
Hinter diesen, und einigen anderen Befehlen wird GENAU ein einziger weiterer Befehl erlaubt.
Also:
Code:
if (1 == b)
StatusLED (GREEN);
else
StatusLED (RED);
Das ist ja bestimmt allen bekannt.
Um nun mehr in das If und Else zu stopen gibt es die {}
Code:
if (1 == b)
{
StatusLED (GREEN);
TuDies ();
TuDas ();
}
else
{
StatusLED (RED);
TuAnderes ();
SeiZufrieden ();
}
Auch dass ist ja bekannt.
Hier ist also der EINE Befehl das { }-Paar.
Nur hinter diesen "Befehl" muss man kein ; setzen. (Darf man aber.)
So erklärt sich auch, warum beim:
nichts funktioniert.
Hinter while (..) ist genau ein Befehl nämlich Nix.
Und dann das fürchterlich schmale Semikolon. Und schon ist der Compiler zufrieden, meckert nicht rum und man selbst ist häufig zu blind das zu finden.
Deshalb schreibe ich grundsätzlich gar nichts hinter diese Befehle mit nur einem erlaubten Folgebefehl.
Bei mir würde ein gewünschtes While ohne Funktion immer so aussehen:
Dann sieht man, dass da nichts passieren SOLL.
Nun aber viel Erfolg mit den Tasten und dem Asuro
Gruß Sternthaler
Lesezeichen