Inkrement auf Pointer liefert Warning

Gast #1712279
Lesenswert?
• ▲
▼
Hallo!

Folgender Code bringt mich ins Grübeln...
Die Funktion prüft einen Puffer (uarx[]), der im Interrupt mit 
empfangenen chars befüllt wird, auf zeichenweise Gleichheit mit einem 
übergebenen String (*command).
Wirs ein CR empfangen, wird das flag uarx_done gesetzt und die Funktion 
kommt über die erste if-Abfrage hinaus.
1
unsigned char chk_for_cmd(const char *command)
2
{
3
   volatile unsigned char *uarxp=&uarx[0];
4

5
   if(uarx_done)
6
   {   /* uart rx done - process receivings */
7
      while(*uarxp == *command)
8
      {  /* if current characters are identical, *
9
          * increase to check next character     */
10
         *uarxp++;
11
         if(*++command=='\0')
12
         {  /* next character to compare matches string-end *
13
             * -> whole command-string detected -> return 1 */
14
            uarx_done=0;
15
            uarx_clr();
16
            return 1;
17
         }
18
      }
19
   }
20
   /* no return 1 -> command not detected -> return 0 */
21
   return 0;
22
}

Das funktioniert auch alles soweit, allerdings nur, wenn ich den 
command-Pointer in der if-Abfrage (if(*++command=='\0')) 
inkrementiere.
Schreibe ich ein einfaches *command++; in die Zeile davor, warnt mich 
der Compiler damit:
warning: value computed is not used.
Und außerdem funktioniert dann auch die Abfrage nicht mehr.

Kann mir das jemand erklären?

Danke, Grüße,
Michael
Gast #1712496
Lesenswert?
• ▲
▼
*++command:

ist aber gleichbedeutend mit

command++;

nur dass im ersten Fall der inkrementierte Pointer noch dereferenziert 
wird (und der gelesene Wert weggeschmissen). Sollte also keinen 
Unterschied machen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.