atari-home.de - Foren
Software => Coding => Thema gestartet von: matashen am Do 14.08.2008, 21:42:50
-
Ok Leute,
keine Angst ich weis was ++ und -- machen.
Aber was ich nciht ganz checke so als Pascal-Hase.
Wo liegt denn bitte der Unterschied zwischen vorangestellten ++ und nach der var geschriebenen ++(so mach ichs) welche Probleme/Vorteile hab ich bei den verschiedenen Schreibweisen ?
Gruß Matthias
-
Vorangestellt bedeutet zuerst wird hochgezählt und dann der Inhalt der Variablen betrachtet, steht es hintenan wird zeurst der Inhalt betrachtet und er erst im Anschluß hochgezählt.
Steht also nur i++ oder ++i, dann macht das keinen Unterschied, aber wenn als Teil eiens Ausdrucks, z.B. in einer for-Schleife, dann kann das einen Unterschied machen.
-
++ vorneweg zählt erst eins hoch und führt dann die nächsten operationen aus.
++ hintenan führt erst die operation durch und zählt dann eins hoch.
bei -- demensprechend
-
Steht also nur i++ oder ++i, dann macht das keinen Unterschied, aber wenn als Teil eiens Ausdrucks, z.B. in einer for-Schleife, dann kann das einen Unterschied machen.
AHA,
alles klar, die Erklärung dazu fehlte mir.
Als Pascalveteran hat man diesen Umstand nicht, da sind solche Anwiesungen strikt getrennt.
Vielen Dank!
-
Kein Kommentar zu Pascal :>
Aber niemand zwingt Dich, in C solche Seiteneffekte zu verbuen. Dass das möglich ist, heisst nicht, dass das guter Stil wäre.
Als Daumenregel sollte gelten: ++ und -- immer nur alleine verwenden, sowas wie a = b *5 + (c++); sollte nie vorkommen.
Wenn dann 2 Zeilen:
a = b * 5 +c;
c++;
Eine weitere Hilfe könnte sein, Lint zu installieren. Den Wert dieses Tools habe ich erst in meinem neuen Job begriffen!
-
was ist/macht lint und von wo kommt das?
-
Statische Codeanalyse, analysiert z.B. ob eine Codierubg Mehrdeutig sein kann.
Schau mal hier:
http://de.wikipedia.org/wiki/Lint_%28Programmierwerkzeug%29 (http://de.wikipedia.org/wiki/Lint_%28Programmierwerkzeug%29)
bzw
http://de.wikipedia.org/wiki/Splint_%28Software%29 (http://de.wikipedia.org/wiki/Splint_%28Software%29)
-
Tach nochmal,
Ich wollt ja hauptsächlich nur Wissen wie der Compiler reagiert. Die Antwort bekomm ich hier besser als das einfach einer Software zu überlassen wo ich wieder nicht weis wie sie arbeitet.
Im übrigen bin ich aus der Pascal-Welt gewohnt Deklarationen und Zuweisungen strikt zu trennen. Dafür macht mich bei C die Groß/Kleinschreibung fertig. Genauso das wischiwaschi bei else bedingungen. Tausen klammern und einfach so mal ein ELSE dazwischen. Das ist in Pascal besser getrennt und viel übersichtlicher.
Sollte also mal jemand nen PascalCompiler fürn Lynx machen - gekauft ! ;D
Gruß Matthias