Hallo
*s++
sind eigentlich zwei Befehle!
*s und s++
Es wird also das Zeichen auf welches s zeigt geholt und danach wird s um eins erhöht.
Da s erhöht wird, wird auch der String immer kürzer.
Sagen wir mal im Speicher liegt folgendes
'A','B','C','D',0
Dann zeigt s auf 'A' und der string ist 4 zeichen lang (0 markiert das Ende).
Nach s++ zeigt s auf 'B', der String ist jetzt nur noch 3 Zeichen lang ...
const char* s
bedeutet, dass s auf einen Speicherbereich zeigt, welcher nicht beschrieben werden kann.
s darf aber verändert werden.
const char* const s
dann wäre auch s gegen Veränderung geschützt und der Compiler könnte optimieren. Aber dann geht s++ nicht mehr .....
Da aber ein String in C mit einem 0 am Ende markiert ist, was auch StrLen() so auswertet, kann man das Ganze viel einfacher schreiben.
MfG Peter(TOO)Code:/*----------------------------------------------*/ void LcdWriteStr(const char* s) { while (*s) { LcdWriteChar(*s++); } } /*----------------------------------------------*/
Lesezeichen