Hallo! Hab folgenden Code gefunden und verstehe nicht, was die Kommas bewirken:
1 | for (p = str, q = p + (n - 1); p < q; ++p, --q) |
2 | {
|
3 | c = *p, *p = *q, *q = c; |
4 | }
|
Kann mir da bitte jemand helfen? Danke! Gruß E. Müller
|
|
Forum: Compiler & IDEs C: Kommas in Codezeile?Hallo! Hab folgenden Code gefunden und verstehe nicht, was die Kommas bewirken:
Kann mir da bitte jemand helfen? Danke! Gruß E. Müller Was sagt denn dein C-Buch dazu? Wenn du keins hast, wäre es spätesttesn jetzt angebracht, sich eins zu besorgen. Solltest du allerdings schon herausgefunden haben, daß die Programmiersprache "C" ist, und das "," ein Operator mit dem Namen "Komma" ist, dann fütter doch mal die Suchmachinen deines Vertrauens mit den Begriffen "C Komma Operator". Du wirst dich wundern, was man im Internet alles findet. Und das get in der Regel viel schneller, als sich eine Frage in einem Forum formulieren lässt. Oliver Bzw. die Zeile ist doch das Gleiche, wie:
Warum schreibt man das dann mit dem Komma-Operator? E. Müller schrieb: > Warum schreibt man das dann mit dem Komma-Operator? Weils kürzer ist und so in eine for-Schleife passt. Dr. Sommer schrieb: > Weils kürzer ist und so in eine for-Schleife passt. Warum sollen die drei Zeilen nicht in eine Schleife passen!? E. Müller schrieb: > Warum schreibt man das dann mit dem Komma-Operator? Das hat hier keinen Grund, außer vielleicht den, dass der Autor das irgendwie "schöner" fand. Weil es Geschmackssache ist. Es gibt viele Möglichkeiten wie man Code schreibt, das ist in der Regel dem Programmierer überlassen ausser er hat sich an "Coding Guidelines" zu halten.
ist dasselbe wie:
oder
Kann man schreiben wie man will ... Grüsse, R. Promeus schrieb: > a == 2 ? ret = false : ret = true; hmm, ich vermute mal, Du meintest:
davon abgesehen würde ich das so schreiben:
oder so:
Gruß, Thosch Nö, meinte ich nicht. Man kann aber auch Deine Schreibweise verwenden. Es war nur ein bildliches Beispiel. ;-) Also, reite da mal nicht rum. Codieren würde ich das so auch nicht ;-) Grüsse, R. DirkB schrieb: > E. Müller schrieb: >> Wird die Codezeilec = *p, *p = *q, *q = c; damit atomar? > Nein. Kommt drauf an, was man unter "atomar" versteht. Auf jeden Fall kann man bei Verwendung des Kommas zwischen den Befehlen die geschweiften Klammern davor und dahinter weglassen, d.h. bei for (...) a, b, c; sind die Statements a, b, c allesamt in der for-Schleife. Frank M. schrieb: > sind die Statements a, b, c allesamt in der for-Schleife. Das "a, b, c" ist ein Statement. Frank M. schrieb: > Kommt drauf an, was man unter "atomar" versteht. Naja, i.d.R. versteht man unter "atomar", dass der Vorgang nicht durch andere Vorgänge unterbrochen bzw. beeinflusst werden kann. Und das ist bei diesem Statement nicht der Fall. Denn ein Interupt oder Ähnliches kann hier problemlos zuschlagen. 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.
|
|