Autor Thema: C-Code ++ und --  (Gelesen 18686 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline matashen

  • Benutzer
  • Beiträge: 1.779
C-Code ++ und --
« 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
Have you played Atari today ?!

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.808
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: C-Code ++ und --
« Antwort #1 am: Do 14.08.2008, 22:17:00 »
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.
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

afalc060

  • Gast
Re: C-Code ++ und --
« Antwort #2 am: Do 14.08.2008, 22:17:56 »
++ 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


Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C-Code ++ und --
« Antwort #3 am: Do 14.08.2008, 22:43:49 »
Zitat
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!
Have you played Atari today ?!

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.808
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: C-Code ++ und --
« Antwort #4 am: Fr 15.08.2008, 18:40:09 »
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!
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C-Code ++ und --
« Antwort #5 am: Fr 15.08.2008, 18:58:06 »
was ist/macht lint und von wo kommt das?
Have you played Atari today ?!

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.808
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: C-Code ++ und --
« Antwort #6 am: Fr 15.08.2008, 21:31:58 »
Statische Codeanalyse, analysiert z.B. ob eine Codierubg Mehrdeutig sein kann.

Schau mal hier:
http://de.wikipedia.org/wiki/Lint_%28Programmierwerkzeug%29
bzw
http://de.wikipedia.org/wiki/Splint_%28Software%29
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C-Code ++ und --
« Antwort #7 am: Fr 15.08.2008, 22:06:06 »
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
Have you played Atari today ?!