SPrintf, bitte um Eure hilfe!



  • +fricky schrieb:

    und erwähne in deinem vortrag auch noch, dass man bei kleinen microcontrollern, wenn möglich, auf sprintf u.ä. verzichten sollte, weil diese funktionen verdammt fett sind und dementsprechend der codespeicher schnell voll ist.
    🙂

    Voll? Soweit ich sehe, hat der nur 256 Bytes on Chip, was will man da sprintf()en? "hello" vielleicht noch, bei ["hello world! %d", irgendeinint] kippt das Ding um. Als schauriges 8051- Derivat kann dem nichtmal einfachst abgeholfen werden. Auf'm PC x86, als Controller x51, Intel sei Dank, ojeh. 🙄



  • pointercrash() schrieb:

    Voll? Soweit ich sehe, hat der nur 256 Bytes on Chip, was will man da sprintf()en?

    ich meine ja den programmspeicher (flash, prom oder sowas). allzu viel RAM wird sprintf ja nicht brauchen, aber diese ganze parserei der formatstrings macht sprintf und kollegen zu echten schwergewichten. naja, wenn er glück hat, bietet seine c-library ein abgespecktes sprintf an.
    🙂



  • +fricky schrieb:

    ich meine ja den programmspeicher (flash, prom oder sowas). allzu viel RAM wird sprintf ja nicht brauchen, aber diese ganze parserei der formatstrings macht sprintf und kollegen zu echten schwergewichten. naja, wenn er glück hat, bietet seine c-library ein abgespecktes sprintf an.
    🙂

    Nene, guckst Du: Das Ding ist ROMless, soweit ich mich erinnere, gehen da 64 kB ROM oder ROM- Emulator problemlos dran. Das ist kein Drama.
    Ich meine schon das RAM. Also ein paar Byte Luft will die C- Runtime für sich "mal so" haben, dito die Formatstringauswertung, dazu kommt noch die Konvertierung Dezimale->String, weiß nicht, wie tief der Aufruf sitzt, aber ein bißchen was brauchen Returnstack und offene Frames dann doch. Wie lang darf dann der Ergebnisstring denn noch sein? Du merkst, die Frage könnte spannend werden. 😃

    Allenfalls gibt es Extended RAM und Keil C dürfte das seamless bedienen können (das letzte 51er- Ding hab' ich vor 13 Jahren abgelegt, bin also echt nimmer sattelfest), aber dann wird's sowieso schnarchlahm. 😉



  • Vielen dank für eure Schnelle Antworten.

    Hab mir den Link von Wiki zum Punkt * durchgelesen aber verstanden habe ich nur bahnhof.



  • N0bbz schrieb:

    Vielen dank für eure Schnelle Antworten.

    Hab mir den Link von Wiki zum Punkt * durchgelesen aber verstanden habe ich nur bahnhof.

    Liegts am Englisch? http://dict.leo.org
    Auf das Beispiel bezogen heißt das, daß die "10" mit drei Leerzeichen ausgegeben wird (to pad = auffüllen). Du kannst mit dem Sternchen angeben, wieviel Zeichen mindestens ausgegeben werden sollen (z.B. für tabellarische Listen).



  • unter anderem 3ag es auch am englisch^^ 😃



  • N0bbz schrieb:

    unter anderem 3ag es auch am englisch^^ 😃

    Englisch ist immens wichtig, wenn du C lernen willst. Das Fachenglisch, dass du da brauchst, ist aber nicht so umfangreich und auch nicht so schwer. Schlag einfach eine Weile jedes unbekannte Wort nach, dann hast du das sicher schnell drauf.



  • Danke für eure Hilfe und eure Tipps! Das ist mal hier ein richtig gutes Forum!



  • Danke für eure Hilfe und eure Tipps! Das ist mal hier ein richtig gutes Forum!

    Jap, dass sagen sie alle wenn man ihnen Code vor die Nase packt 🤡 .



  • way schrieb:

    Danke für eure Hilfe und eure Tipps! Das ist mal hier ein richtig gutes Forum!

    Jap, dass sagen sie alle wenn man ihnen Code vor die Nase packt 🤡 .

    Hast du den Thread überhaupt gelesen?? 🙄


Anmelden zum Antworten