Fehler : lvalue required as decrement operand

Ich verstehe diese Fehlermeldung nicht:

"lvalue required as decrement operand"

// unsigned long test ;

  test = millis();
  Serial.println(test);

Ist aus diesem Programmschnipsel der Grund dieser Fehlermeldung erkennbar?
Danke für die Hilfe.
Rüdiger R.

Greyhaired:
Ist aus diesem Programmschnipsel der Grund dieser Fehlermeldung erkennbar?

Nein.

Ich verstehe diese Fehlermeldung nicht:

"lvalue required as decrement operand"

Aber ich!

Und gleich auch du.

Eine Zuweisung ist dir bekannt?

Sowas wie:

anzahl = 12 * 42;

Hier ist anzahl das lvalue, denn es taucht auf der linken Seite der Zuweisung auf.
12 * 42 ist das rvalue, denn es steht rechts.

Logisch?
l wie links und r wie rechts.

lvalue required as decrement operand
Irgendwo machst du ein Decrement, also ding-- oder --ding
Das kann man aber nur mit Sachen machen, welche auch auf der linken Seite einer Zuweisung auftauchen
dürfen.

Übersetzung der Meldung:

Wenn du decrementieren willst, kannst du das nur auf ein lvalue anwenden.

z.B. Funktionen sind typische rvalues.
Denn sie liefern Werte, aber man ihnen keine Werte zuweisen.

millis() = 42; // lvalue required as left operand of assignment
millis()++;    // lvalue required as increment operand

@combie: Danke für die ausführliche Antwort. Die Mühe hat sich gelohnt. Es funktioniert jetzt.
Rüdiger R.

Schön. Wenn Du das Ergebnis und den Hinweis, was falsch war der Nachwelt zur Verfügung stellen würdest, wäre der Zweck des Forums erfüllt.

Gruß Tommy