www.mikrocontroller.net

Forum: Compiler & IDEs Was bedeutet %3 hinter der Variable ??


Autor: Günter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !
Kann mir jemand sagen was das " %3 " hinter test bedeutet ?

int test = 0;

test = ++test%3;

Danke !

Autor: kosmonaut_pirx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

modulo division.

bye kosmo

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"%" ist der Modulo-Operator (Divisionsrest).

Autor: xyz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was macht die 3 ?
Und welchen Wert hat dann Test ?

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: xyz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tolle Antwort.
Wenn man selbst keine Ahnung nicht hat.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
xyz wrote:
> Und was macht die 3 ?

Wie, was macht die 3?
Die lungert da so rum. Bis eine
Modulo Division kommt und sie als
Operand missbraucht.

> Und welchen Wert hat dann Test ?

Der ganze Ausdruck hat undefiniertes Verhalten.
Aber es ging ja um den % und nicht um den Ausdruck
an sich.
In einem kompletten Ausdruck darf an eine Variable
nur einmal ein neuer Wert zugewiesen werden. In
  test = ++test;
passiert das aber 2-mal.

Autor: xyz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, vielen Dank Herr Karl heinz.

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind doch vöölig banale C-Grundlagen, das kan ndir jedes C-Buch 
erzählen: Stichworte Pre-Inkrement und Modulo, und Modulo 3 kann ja 
(meistens) sogar im Kopf ausrechnen)

hth. Jörg
ps.: bei unbekannten Wörtern hilft oft Wikipedia.de weiter ;)

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt wollte ich gerade zusammenschreiben, dass das eigentlich doch 
definiert ist, aber beim Kompilieren mit -Wall erhielt ich eine Warnung. 
Die Diskussion gab es aber schon einmal auf der gcc-Mailinglist:

http://gcc.gnu.org/ml/gcc/2004-10/msg00024.html

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... wie man doch manchmal dazulernt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florian wrote:
> Die Diskussion gab es aber schon einmal auf der gcc-Mailinglist:

Diese Diskussion gibt es in jeder C oder C++ Newsgroup
in Abständen von 2 bis 3 Wochen immer wieder.
Es gab Zeiten, da konnte ich die relevanten Abschnitte
aus dem C-Standard im Schlaf zitieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.