Der Martin: String concat in c++

Beitrag lesen

Hallo,

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.

Nein, das ist nicht wahr, und das weisst du. Jedem Compiler steht es frei,
intern eine der drei Formate zu benutzen und sie bei Bedarf anzupassen; wäre
ja auch schlimm, wenn das nicht so wäre, stell dir vor, was auf einem System
passieren würde, dass vollständig mit BCD arbeitet...

Ja und? Für so ein System hätte ein Compiler gefälligst Code zu erzeugen, der ebenfalls mit BCD-Arithmetik arbeitet. Das ist nun einmal meine Überzeugung. Intern ein anderes Format zu verwenden und bei jedem Systemaufruf umzuwandeln wäre zwar theoretisch möglich, aber praktisch völliger Blödsinn.

[...] str += sprintf("Pattern Line 1", var1, var2);
Und ich wette mit dir, dass das nicht der Fall ist. sprintf() übernimmt als erstes Argument den Buffer, in den es schreiben soll...

Oha... erwischt. ;-)
Es hätte so heißen sollen:

str += sprintf(str, "Pattern Line 1", var1, var2);

Ja, den buffer hatte ich vor lauter lass-mich-auch-mal völlig vergessen. Dann entschuldige bitte meine verbale Backpfeife - ich habe angesichts deiner Kritik nach ganz anderen subtilen Fehlermöglichkeiten gesucht und dabei das Offensichtlichste übersehen.

Schönes Wochenende noch,

Martin

--
Die letzten Worte der Challenger-Crew:
Lasst doch mal die Frau ans Steuer!