Lichtlein schrieb:
Mir ist durchaus bewußt das die IoStreams sehr mächtige Werkzeuge sind. Ich sehe aber auch das diese Beqeumlichkeit gepaart mit den Häutigen GHz Prozessoren schnell dazu führen kann, unnötigen langsamen Code zu schreiben.
Was aber meistens im Vergleich zu anderen Stellen im Code vernachlässigt werden kann. Es bringt dir nichts, wenn du auf alle Bequemlichkeiten verzichtest, unwartbaren Code produziert und dafür das letzte rausgeholst hast. Wobei das nicht mal stimmen muss, erst ein Profiler kann da wirklich genaueres sagen.
Lichtlein schrieb:
Es ist nun mal so, das
cout << ">" << mName << "," << mNachname << ": " << mPLZ << endl;
7 mal einen Call in den ostream ausführt, das 7 mal der ostream seine Umgebungparameter prüfen muss usw.
Wohingegen
printf(">%s,%s: %u\n", mName, mNachname, mPLZ);
nur 1 mal aufgerufen wird, und somit auch nur 1 mal seine Umgebungsparameter prüfen muss.
Das sind genau so oberflächliche und unfaire Aussagen. Was meinst du, was printf dann macht? Zaubert es einfach so mal die fehlenden Angaben in den String rein? Wahrscheinlich finden intern diese 7 Aufrufe genau gleich statt, wobei jedesmal auf Fehler geprüft werden muss. So kann man eben keine Vergleiche durchführen.
Grüssli