Gast
#2113703
Hallo, ich behaupte mal, nach meinem C Verständnis, dass es 3!=6 verschiedene Aufrufreihenfolgen geben kann. Liege ich richtig mit meiner Vermutung?
|
Anzeige
|
C: a()+b()*c() Aufrufreihenfolge
Gast
#2113703
Hallo, ich behaupte mal, nach meinem C Verständnis, dass es 3!=6 verschiedene Aufrufreihenfolgen geben kann. Liege ich richtig mit meiner Vermutung?
Gast
#2113705
Eben, sie ist undefiniert, d.h. der Compiler kann daraus machen was er will, 6 Möglichkeiten hat er denn er kann trotz Punkt vor Strich trotzdem etwas vorher aufrufen und erst hinterher verwenden. Zwar wird das compilierte Programm dann immer gleich ablaufen, aber selbst das ist nach C-Standard nicht garantiert. Will man eine bestimmte Reihenfolge, muß man die Berechnung aufdröseln und per Semikolon die Anweisungen voneinander trennen. Ein Semikolon erzwingt eine Aufrufreihenfolge. Dennoch können Compiler semikolongetrennte Statements umsortieren wenn sie glauben, daß es keine Nebeneffekte hat. Bei Funktionen lassen sie das also meistens. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|