Hallo Forum!
In letzter Zeit mache ich mir immer häufiger gedanken darüber, was ‚besserer‘ Programmierstil ist, z.B. bei ‚Temporären Objekten‘:
Var 1:
f(int z)
{
for (…)
{
int a = z/2;
int b = z/2;
}
}
Var 2:
f(int z)
{
int temp = z/2;
for (…)
{
int a = temp;
int b = temp;
}
}
Der Vorteil von Var 1 ist, daß ich eine Variable einspare, der Vorteil von 2: ich muß die Berrechnung nur ein mal durchführen.
Ich bin mit den ‚Abgründen‘ der Compiler nicht sonderlich vertraut, aber ich habe mal gelesen, daß temporäre Objekte (also die ‚Ergebnisse‘ von Var 1) sowieso auf dem Stack landen und somit wäre es ja auch nicht so ‚teuer‘ gleich eine Variable mit dem Ergebnis anzulegen (Var 2).
Welche Version ist nun besser?
Ferner habe ich folgendes Problem:
Ich möchte dynamisch ein paar Strings (Zeilenweise) speichern. Ist es hier nun ‚billiger‘ einen kompletten Buffer, z.B. mit char *buff = new char[BAF_MAX]; anzulegen, oder direkt für jede einzelne Zeile den gebrauchten Speicherplatz zu allokieren?
Lösung 1 macht halt Probleme, wenn der Buffer mal ‚ausgehen‘ sollte (und geht wohl auch nicht so wahnsinnig effizient mit dem Speicher um), Lösung 2 benötigt halt bei jeder neuen Zeile ein ‚new‘.
Ich weiß, daß diese Fragen für einen Hobbyprogrammierer angesichts der heutigen PCs eher theoretischer Natur sind, aber es interessiert mich halt