Re: Compilerfehler? Kategorie: Programmierung (von Udo - 4.06.2005 12:41) | ||
Als Antwort auf Re: Compilerfehler? von Hans - 4.06.2005 9:31 | ||
| ||
> > > > Hallo, > > > > > > > > wenn Du die Zeile so änderst: > > > > > > > > ports.set(0,x); > > > > > > > > > > Hallo Udo > > > > > > was ist daran anders? > > > > > > Gru� > > > Hans > > > > x ist eine Variable keine Zahl. > > in Deinem Fall kommt natürlich vorher: x=1; > > > > Gru� > > Hallo Udo > Habe mich wahrscheinlich falsch ausgedrückt. Um den Fehler nachzuvollziehen mu� man die paar > Zeilen durch den Compiler lauffen lassen. Die Kompination von WHILE und der Zeile > ports.set(x,y); break; bringt den Fehler, Der Wert von ports.set(a,b) ist unerheblich! Die Logik des > Programms ist meines erachtens richtig. Nur der Compiler glaubt es nicht! > > Gru� > Hans > Hallo nochmal, wenn ich Deinen Code verwende, bekomme ich denselben Fehler. Ersetze ich in der Anweisung ports.set(0,1) die Zahl 1 durch eine Variable, tritt der Fehler nicht mehr auf. Es kommt hier darauf an, dass der Wert, der an die Funktion ports übergeben wird, keine Zahl, sondern eine Variable ist. Im Ergebnis ist das sicherlich dasselbe, aber der Syntax ist halt anders und genau daran stört sich der Compiler. Dein Quelltext sollte also so aussehen: // --------------------- thread irgendwas { int p, i, x; if p <6 { if i == 5 { while i <99 { if i == 1 { x=1; ports.set(0,x); // ZEILE XXX diese zeile bringt keinen Fehler mehr! break; } } //end while } // end i ==5 } // end 500 } // end thread thread main { // do something halt; } Der Compiler ist halt manchmal etwas eigensinnig. Gru� | ||
Antwort schreiben Antworten: |