Forum: Compiler & IDEs Auswertreihenfolge von Funktions-Parametern


von Schwurbl (Gast)


Lesenswert?

Hi C-Gurus,

Ist das Ergebnis von folgendem C-Code definiert oder undefiniert?
1
int Next(void)
2
{
3
    static int i=0;
4
    i++;
5
    return i;
6
}
7
8
void Print(int i1,int i2, int i3)
9
{
10
    printf("%d %d %d\r\n",i1,i2,i3);
11
}
12
13
void main(void)
14
{
15
    Print(Next(),Next(),Next());
16
}

Sprich, gibt es eine Vorgabe, in welcher Reihenfolge C die Parameter 
verarbeitet/errechnet? Intuitiv würde man sagen, die Ausgabe lautet: 1 2 
3

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Schwurbl wrote:

> Sprich, gibt es eine Vorgabe, in welcher Reihenfolge C die Parameter
> verarbeitet/errechnet?

Nein, gibt es nicht, und Compiler sortieren das nach Gutdünken
um.

von Matthias L. (Gast)


Lesenswert?

>ortieren das nach Gutdünken um.

Nach Größe und Gewicht. Deshalb gibt es für den Mond andere Compiler

;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.