[S] "selfmade" sprintf()- Funktion:)

Gast #2165688
Lesenswert?
• ▲
▼
Schönen guten Abend,

ich programmiere gerade ein LPC2478 mit WinARM und mir ist aufgefallen, 
dass die sprintf()-Funktion zusammen mit den Routinen aus der newlib-lpc 
eine Größe von 36kB !! einnehmen. Eindeutig zuviel nach meinem 
Verständnis. Habe mich deshalb entschlossen die Funktion selbst zu 
schreiben, doch bevor ich damit anfange, dachte ich mir, fragst du hier 
freundlich nach, ob die selbsgeschriebene Variante bei jemandem schon 
auf der Festplatte irgendwo rumoxidiert.
Wenn nicht ist auch nicht schlimm, wie gesagt dann schreibe ich meine 
eigene und werde diese bei Interesse hier publik machen.

Gruß
Alex
Gast #2165699
Lesenswert?
• ▲
▼
> dann solltst du sagen auf was du verzichten kannst

ich möchte nur integer- und float-Zahlen in einen String wandeln. Bei 
integer max 5 Stellig und bei float max 3 stellig vor und 2 stellig nach 
dem Komma. Auf alles andere kann ich verzichten.
Persönliche Seite #2165716
Lesenswert?
• ▲
▼
Alex schrieb:
>> dann solltst du sagen auf was du verzichten kannst
>
> ich möchte nur integer- und float-Zahlen in einen String wandeln. Bei
> integer max 5 Stellig und bei float max 3 stellig vor und 2 stellig nach
> dem Komma. Auf alles andere kann ich verzichten.
int number = 12345; char sign = '+';
if (number < 0) { number *= -1; sign = '-'; }
char text [6]; int i;
for (i = 5; i >= 1 && number != 0; i--) {
  text [i] = (number % 10) + '0';
  number /= 10;
}
text[i]=sign;
Gast #2165770
Lesenswert?
• ▲
▼
@ Niklas Gürtler:

Ich muss schon sagen!Raffiniert! Sind die paar Zeilen Code einfach so 
mal aus dem Kopf geschossen oder hast du den schon irgendwo gehabt? Bin 
zwar auch etwas bewandert in der Materie aber so schnell hätte ich den 
nicht einmal reinpasten können.
Bisher ist dein Code zumindest für die integer-Wandlung am kürzesten und 
funktioniert ohne auch nur ein Pünktchen zu ändern (siehe Bild rote 
Zahlen)
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.