Hallo Freunde habe eine Fehlermeldung mit AVR Studio 4, die ich nicht verstehe. Fehlermeldung: Warning: left-hand operand of comma expression has no effekt Die Meldiung kommt bei dem folgenden Schnipzel: for (i=4,j=5;i>=2,j<=8;i--,j++) <<< In dieser Zeile { leds_set_status(0,i); leds_set_status(0,j); delay(150); } Sobald ich nur i oder j verwende, gibt es keine Probleme. Es wird eine Warnung angezeigt aber das Prg läuft trotzdem. Habe auch die Vorzeichen geändert achim
Die Warnung bezieht sich auf diesen Teil:
1 | i>=2,j<=8 |
Und die Aussage der Warnung ist schlicht wortwörtlich zu nehmen: die linke Seite vom Komma hat keinen Effekt, also keinerlei Einfluss auf die Programmausführung. Am besten nimmst du dir dein C-Buch und schlägst mal die genaue Bedeutung des Komma-Operators nach. Und danach die Bedeutung von &&.
Hallo das habe ich getan. Der Aufbau stammt genau aus einem C Buch von Jürgen Wolf. Habe es noch mal nachgelesen, es steht auf Seite 165 uf.Es können verschiedene Eingaben gemacht werden, die durch ein Komma getrennt sind. Habe ich da was falsch gelesen?
Achim Seeger schrieb: > Hallo > das habe ich getan. Der Aufbau stammt genau aus einem C Buch von Jürgen > Wolf. kann ich mir nicht vorstellen. so eine for schleife schreibt man in der Praxis nicht. Warum sollte man 2 Variablen verwenden wenn auch eine Reicht?
1 | for (i=0; i<2; ++i ) |
2 | {
|
3 | leds_set_status(0, 4-i); |
4 | leds_set_status(0, 5+i); |
5 | delay(150); |
6 | }
|
Hallo Peter
danke für deine Antwort.Dein Vorschlag ist klasse. Habe ihn so
umgesetzt. Zu Anfang lief es leider verkehrt herum. Konnte ich ändern,
ohne Problem, auch die Zuordnung bei mir. Habe den Code mal
reingestellt.
for (i=2;i<=4;i++)
{
leds_set_status(1,i);
leds_set_status(1,9-i);
delay(150);
}
for (i=4;i>=2;i--)
{
leds_set_status(0,i);
leds_set_status(0,9-i);
delay(150);
}
Das mit C lernen ist gut, bin auch dabei. Doch wenn in dem besagten Buch
steht
10. Möglichkeit
for(n1=1,n2=2;n1<=10;n1++)
dann nehme ich an das es geht. In einem anderen Tutorial steht auch
for (i=1,j=100;i<=100,j>=1;i++,j--)
Wer hat den nun recht. Meine Fehlermeldung oder die Literatur?
achim
Achim Seeger schrieb: > Doch wenn in dem besagten Buch > steht > > 10. Möglichkeit > for(n1=1,n2=2;n1<=10;n1++) > > dann nehme ich an das es geht. Da steht ja aber auch kein Komma im mittleren Teil (dem Bedingungs-Teil) der for-Schleife. Achim Seeger schrieb: > In einem anderen Tutorial steht auch > > for (i=1,j=100;i<=100,j>=1;i++,j--) Das Tutorial ist in diesem Punkt schlicht falsch.
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.