2 Funktionsaufrufe in einem Statment
-
Welches unterprogramm wird als erstes ausgeführt wenn ich folgenden Code habe?
int BerechneA() { ... } int BerechneB() { ... } ... int C = BerechneA() + BerechneB(); ...
Und ist das bei allen Compilern gleich?
-
int BerechneA() { printf("Bin jetzt in A\n"); ... } int BerechneB() { printf("Bin jetzt in B\n"); ... } ... int C = BerechneA() + BerechneB(); ...
...so bekommst du raus, was als erstes ausgeführt wird.
Zu deiner zweiten Frage: Weiß ich nicht
-
Da der Operator + (wie die anderen auch) keinen sog. Sequenzpunkt darstellt, ist die Reihenfolge der Funktionsaufrufe undefiniert. Das kann sogar bei eingeschalteten Optimierungen wieder anders sein.
Nur beiint a = BerechneA(); int b = BerechneB(); int c = a + b;
sind die Aufrufe genau festgelegt.