Forum: Programmieren allgemein
by Chewie,
27. Jul 2004
Hm, ich schon. Nur weil zusätzlich noch was auf den Stack gelegt wird, wird trotzdem gesprungen.
Forum: Programmieren allgemein
by Chewie,
27. Jul 2004
Auf Maschinenebene gibt es nur Sprünge, keine Funktionen. Man kann also mit gotos den gleichen Code erzeugen wie mit Funktionen. gotos werden nur geschmäht, weil sie sehr unübersichtlich sind. Funktionen sind abgeschlossene Blöcke, wärehdn Sprungmarken mitten in Blöcken vorkommen und sich eine goto-Sequenz wie Spaghetti durch deinen Code schlängeln kann (daher auch der Name).
Forum: Programmieren allgemein
by Chewie,
27. Jul 2004
Das ist schon richtig, bezieht sich aber nicht nur auf GOTOs, sondern auf jede Art von Sprüngen, also auch Funktionsaufrufe.
Der Grund ist folgender: Wird eine Anweisung ausgeführt, ist es sehr wahrscheinlich, dass die ncächsten Anweisungen ebenfalls ausgeführt werden. Deshlab werden die in den Cache vorgeladen.
Erfolgt jetzt ein Sprung, sind auf einmal nicht die Daten im Cache, die als...