Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

41

29.11.2013, 21:26

Post oder Prekrement ist total egal, solange man es korrekt einsetzt.


Rein aus Interesse: Weil jeder vernünftige Compiler das eh soweit optimiert, dass das zusätzliche zwischenspeichern beim Post wegfällt oder weil der Geschwindigkeitsunterschied einfach so dermaßen klein ist, dass es einfach keine Rolle spielt?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

42

29.11.2013, 21:33

Letzteres, wenn er ersteres nicht tun würde, was er aber tut. Generell ist das aber in die Riege der Premature Optimizations einzuordnen, egal was der Compiler tatsächlich tut.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

43

29.11.2013, 23:50

Es geht nicht um Optimierung sondern um Fehlervermeidung bei Anfängern. Es gibt keinen Grund dafür standardmäßig Postinkrement zu verwenden, das sollte eher die Ausnahme sein.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

44

30.11.2013, 09:07

Das sehe ich ganz anders. Es hängt eben davon ab, was man tun will. Für jede Situation gibt es das passende Werkzeug.
Gerade bei Iterationen kann man meiner Meinung nach ziemlich schnell auf den falschen Index zugreifen, wenn man Prekrement statt Postkrement verwendet. Das kann natürlich auch an meiner persönlichen Denkweise liegen und wie ich meine Algorithmen aufbaue, aber ich kann mich nur an wenige Situationen erinnern, wo ein Prekrement für mich korrekt gewesen wäre.
Beispiel:

C-/C++-Quelltext

1
2
while (p[i] != null)
    std::cout << p[i++];
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

45

30.11.2013, 12:42

Nach meiner Erfahrung erwarten Anfänger aber so gut wie immer das Verhalten von Prekrement.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

46

30.11.2013, 14:16

Na ja, für "Erwartungen", die nicht der Spezifikation entsprechen, kann ich ja nix. Prekrement ist an der Stelle jedoch äußerst hinderlich, wenn man bei 0 anfängt zu zählen und bei n-1 aufhören will. Da macht das Prekrement am Ende irgendwie dann auch nicht das, was ein Anfänger erwarten würde. Oder zumindest hätte es nie das getan, was ich als Anfänger davon erwartet habe. Das Postkrement jedoch schon.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

47

30.11.2013, 14:28

Letztendlich ist das doch eigentlich nur ne Sache, was einem besser liegt, womit man lieber arbeitet und nur in speziellen fällen ist wirklich das eine oder das andere wirklich von Vorteil oder nicht? ich arbeite z.b. auch lieber mit postkrement - find ich einfach leichter mit zu arbeiten, passt besser zu meiner Denkweise.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

48

30.11.2013, 16:34

Genau so ist es. Sagte ich ja auch schon.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

49

01.12.2013, 13:21

Es heißt übrigens Präinkrement bzw. Postinkrement.
Oder preincrement bzw. postincrement.

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

50

01.12.2013, 13:26

Ich kenne Leute, bei denen es geläufig ist, vom "Krement" zu sprechen, wenn damit gleichermaßen Inkrement und Dekrement gemeint sind. Ein geschickter Neologismus, wie ich finde, wenngleich das Wort ohne "Prä" und "Post" recht seltsam klingt.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

Werbeanzeige