mehr oder weniger Variablen

Gast #1128728
Lesenswert?

Hallo, ich stelle mir gerade die Frage, was für den Speicherverbrauch 
besser wäre:

Beispiel 1:
1
int a = 1;
2
int b = 2;
3
int c = 3;
4
int d = 4;
5

6
int e1, e2, e3, e4, f;
7

8
e1 = (a + b) * c - d;
9
e2 = a * b + c - d;
10
e3 = (a + b + c) * d;
11
e4 = a + b + c + d;
12

13
f = e1 * (e2 + e3) - e3;

oder

Beispiel 2:
1
int a = 1;
2
int b = 2;
3
int c = 3;
4
int d = 4;
5

6
int f;
7

8
f = ((a + b) * c - d) + ((a * b + c - d) + ((a + b + c) * d)) - (a + b + c + d);

Beispiel 1 ist von der Lesbarkeit her natürlich besser, Beispiel 2 würde 
4 Variablen einsparen. Gehen wir nun mal davon aus, das in einem 
Programm viele solcher Rechnungen vorkommen mit eventuell größeren 
Datentypen.

Was meint ihr dazu?
#1130862
Lesenswert?

Generell darfst du davon ausgehen, das ein Compiler vom Optimierungsgrad 
eines GCC sich von Zwischenvariablen nicht irritieren lässt und mit oder 
ohne diese den gleichen Code erzeugt.

Allerdings nur, wenn sich das Ergebnis dadurch nicht ändert. Was der 
Fall sein kann, wenn die Variablen kleiner sind als die normgerecht 
durchgeführte Rechnung. Also beispielsweise bei Variablen kleiner als 
"int". Denn
1
char i;
2
char k = i + 1;
3
if (k < 100)
ist nicht identisch mit
1
if (i+1 < 100)
sondern entspricht
1
if ((char)(i+1) < 100)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren