Der Martin: String concat in c++

Beitrag lesen

Moin,

nein, deine Schlussfolgerung ist so nicht ganz richtig. Der Compiler muss die Konvention umsetzen, die das jeweilige Zielsystem verwendet. Er hat also nicht die Möglichkeit zu wählen.
Wer sagt das? Der Standard nicht.

Braucht er auch nicht. Ein Compiler, der eine andere Konvention als die des gewünschten Zielsystems verwendet, erzeugt Programmcode, der nicht lauffähig ist, weil jede Übergabe von Integerwerten an Systemfunktionen Unsinn übergibt.

CHAR *str;
[...]
str += sprintf("Pattern Line 1", var1, var2);
str += sprintf("Pattern Line 2", var3, var4);
str += sprintf("Pattern Line 3", var5, var6);
...

Über den Code solltest du nochmal nachdenken. Der ist so, wie der da steht, totaler Quatsch.

Schön. Produziert aber in Hunderten von Exemplaren seit Jahren tadellos die erwünschten Ergebnisse. Und -auf die Gefahr, dass ich mich wiederhole- allein darauf kommt es an.

Zitat aus der Online-Hilfe zu Borland C++ 5.01:

| Rückgabewert:
 | sprintf() liefert liefert die Anzahl der ausgegebenen Zeichen zurück,
 | wobei das abschließende Nullzeichen nicht mitgezählt wird.
 | Im Fehlerfall ist das Funktionsergebnis EOF.

EOF ist tatsächlich als -1 definiert.

Über deine obige Aussage solltest du nochmal nachdenken. Die ist so, wie sie da steht, totaler Quatsch.
Es sei denn, du erklärst mir jetzt noch, was bei sprintf() für Fehler auftreten sollen, solange der Format-String korrekt ist. Aber da dürftest du's schwer haben. ;-)

Schönes Wochenende noch,

Martin

--
Was ist wichtiger: Die Sonne oder der Mond?
Der Mond. Denn er scheint nachts. Die Sonne dagegen scheint tagsüber, wenn es sowieso hell ist.