> BYTE n, d;
>
> n=10;
> do
> {
> rcvr_mmc(&d, 1);
> }
> while ((d & 0x80) && (--n)); <-- Warning Possibly incorrect assignment in function xxx
>
> Wie funktioniert das Abbruch Kriterium, und warum meckert der Compiler.
Wie schon Funkenzupfer geschrieben hat, wird 'd' dann Null, wenn das höchstwertigste Bit nicht gesetzt ist, die UND Relation zwischen dem Testen von 'd' und dem Wert von 'n', der durch das Herunterzählen auf 0 irgendwann steht, trägt dazu auch bei.
D.h. also, das Codefragment versucht 10x etwas zu empfangen, und bricht früher ab, falls der gelieferte Wert in 'd' dem ersten Kriterium (Bit gesetzt) entspricht.
Finde den C Code nicht überwältigend transparent geschrieben, das geht auch besser.