Der Martin: Zahlenformatierung in C

Beitrag lesen

Hi,

Wenn die maximale Länge des formatierten Strings nicht mit Sicherheit vorhersagbar ist, dann zusätzlich einen Parameter vom Typ int, der der Formatierungsfunktion angibt, wie groß der zur Verfügung stehende Puffer ist.
Der korrekte Typ für eine Puffergröße wäre size_t anstelle von int.

klar, aber int ist der Basistyp für ganzzahlige Werte. Die Größe eines Speicherbereichs in Byte *ist* ein ganzzahliger Wert. Deswegen ist size_t ja identisch zu int deklariert. Allein schon das Bestreben, hier einen eigenen Typ zu definieren, ist in meinen Augen eine unnötige Verkomplizierung.
In der Gemüseabteilung im Supermarkt unterscheide ich ja auch nicht zwischen Tomaten für Salat, Tomaten für Auflauf und Tomaten für kalte Platten, sondern ich will einfach nur Tomaten.

Oder ssize_t wenn man auch negative Werte für Fehlercodes o.ä. braucht.

Das wäre mit int bereits abgedeckt.

Das ist ja im Prinzip auch das Verfahren, das sprintf() anwendet - nur dass sprintf() eben *nicht* überprüft, ob der Puffer ausreichend groß ist.
Weswegen es im aktuellen C-Standard auch snprintf() gibt

Schon mal davon gehört, ist allerdings immer noch nicht in meinen aktiven Wortschatz eingedrungen.

Ciao,
 Martin

--
Elefant zum Kamel: "Sag mal, wieso hast du denn den Busen auf dem Rücken?"
Kamel:             "Ziemlich freche Frage für einen, der den Penis im Gesicht hat."
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(