Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Compilerfehler? Kategorie: Programmierung (von Udo - 4.06.2005 12:41)
Als Antwort auf Re: Compilerfehler? von Hans - 4.06.2005 9:31
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, eigenes Board, OSOPT_V2
> > > > 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: