Moin Moin! Könnte mir einer den Text erklären und - oder Kommentieren? void LCDString(const char *__putstr) { char __ps; __ps = *__putstr; while(__ps>0) { __putstr++; if (__ps== 0) break; LCDWriteChar(__ps); __ps = *__putstr; } } Hab echt kein Plan was da passiert. Im Hauptprogramm steht nur: LCDString("Beispieltext"); Das Zeigt er ja auf dem Display an, aber was macht der obere Teil? MfG Stefan
Stefan S. schrieb: > Moin Moin! > > Könnte mir einer den Text erklären und - oder Kommentieren? > >
1 | void LCDString(const char *__putstr)//Pointer auf String |
2 | {
|
3 | char __ps; //Erzeugen eines neuen chars als Puffer |
4 | __ps = *__putstr; //Dereferenzieren des Pointers (Inhalt holen) |
5 | |
6 | while(__ps>0) //Solange kein Stringende |
7 | {
|
8 | __putstr++; //Adresse hochzählen |
9 | if (__ps== 0) break; //Wenn stringende, break |
10 | LCDWriteChar(__ps); //Ansonsten char ausgeben |
11 | __ps = *__putstr; //Dereferenzieren des Pointers (Inhalt holen) |
12 | }
|
13 | }
|
Geht auch kompackter bei gleicher Funktion. Ist dann auch leichter zu verstehen. (Wenn man mit Pointern nicht auf Kriegsfuß steht.) Führende Unterstriche sollte man nicht verwenden.
1 | void LCDString(const char *str) //Pointer auf String |
2 | {
|
3 | while(*str) // Solange kein Stringende (0) |
4 | {
|
5 | LCDWriteChar(*str++); // Ausgabe eines Zeichens und Adresse erhöhen |
6 | }
|
7 | }
|
Ich empfehle dringend deine C-Kenntnisse aufzufrischen. z.B.: http://openbook.galileocomputing.de/c_von_a_bis_z/
Stefan S. schrieb: > Weiß einer was das * bei *__putstr bedeutet? Dereferenzieren. Das entbindet dich aber nicht von der Anschaffung und dem Durcharbeiten eines C-Buches.
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.