Hallo,
ich versuche gerade eine Art der Stringsübergabe nachzuvollziehen, komme
jedoch nicht klar damit und verstehe nicht den Ausdruck.
und zwar:
_______
unsigned char str[31]="Alle Schalter in Nullposition!"
...
unsigned char i=0;
while(str[i]) putchar(str[i++]);
__________
putchar ist einfach Funktion UDR1=byte_to_send
aber, wie versteht man diesen while Ausdruck while(str[i])? i wird nicht
einmal inkrementiert. Hat das was mit String - Determination /0 zu tun?
Ich würde das übrigens so implementieren:
int i=0;
while(i<31)
{
putchar(str[i])
i++;
}
das komplette Code ist im Anhang.
Bitte um Ihre Hilfe
Alex S. schrieb: > Hat das was mit String - Determination /0 zu tun? Genau so ist es. Deine Variante wird zum Genickschuss, wenn du später mal die Stringlänge änderst und nicht aufpasst.
Alex S. schrieb: > unsigned char i=0; > > while(str[i]) putchar(str[i++]); Klar wird hier inkrementiert, dafür steht das "i++". Die while-Schleife läuft so lange bis str[i] ein '\0' enthält. Alex S. schrieb: > int i=0; > while(i<31) > {putchar(str[i] > i++; > ) Die Implementierung ist in dem Fall nicht so gut, stell dir vor der String ändert seine Länge. Mit der while(str[i]) Lösung kannst du flexibel reagieren und ist eigentlich die typische Lösung bei so einem Problem. Es muss halt nur sicher gestellt werden, dass der String mit '\0' terminiert wird.
Noch etwas anderes: Für Zeichen nimmt man den Datentyp char. Ob das signed oder unsigned ist, ist eine Einstellung vom Compiler. Zum rechnen nimmt man explizit unsigned char bzw. signed char. Für dein i ist unsigned char ok, Für str ist char besser.
DirkB schrieb: > Noch etwas anderes: > > Für Zeichen nimmt man den Datentyp char. > Ob das signed oder unsigned ist, ist eine Einstellung vom Compiler. > > Zum rechnen nimmt man explizit unsigned char bzw. signed char. > > Für dein i ist unsigned char ok, > Für str ist char besser. hallo Dirk vielen Dank für die Information!
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.
