Forum: Mikrocontroller und Digitale Elektronik C-Programmierung LCD PIC16F84A


von Stefan S. (Gast)


Lesenswert?

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

von Nobody (Gast)


Lesenswert?

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
 }

von Volker Z. (vza)


Lesenswert?

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
}

von Stefan S. (Gast)


Lesenswert?

Dankesehr!

Ich versuch mal da was zu verstehen!

von Stefan S. (Gast)


Lesenswert?

Weiß einer was das * bei *__putstr bedeutet?

von Nobody (Gast)


Lesenswert?

Ich empfehle dringend deine C-Kenntnisse aufzufrischen.
z.B.:
http://openbook.galileocomputing.de/c_von_a_bis_z/

von Karl H. (kbuchegg)


Lesenswert?

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
Noch kein Account? Hier anmelden.