<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Dovolím si zareagovat a trochu rozvinout poznámku pana weka o
nevhodnosti používání *printf na jednochipech (se kterou souzním).<br>
Všechny ty *printf jsou obecně dost mocné funkce, které umí
formátovat kde co, kde jak.<br>
Ale protože toho umí hodně, tak jsou velké.<br>
Na nějakém PC s gigabyty paměti to moc nevadí, ale pro použití na
MCU to (podle mě, a asi i podle pana weka) moc vhodné není.<br>
Proto když už tam jsou jsou, tak jsou často všelijak osekané a
některé věci neumí (třeba ty float a double, které se případně musí
nějak extra povolit).<br>
<br>
Takže obecné doporučení: zvažte, jestli fakt potřebujete univerzální
*printf.<br>
Jestli si raději nenapíšete svou vlastní konverzi pro textový
výstup, která bude umět jen to, co potřebujete.<br>
Ale zase na druhé straně bude dělat přesně to, co potřebujete.<br>
<br>
PL<br>
<br>
******************<br>
<br>
<div class="moz-cite-prefix">Dne 15.4.2024 v 14:06 Martin Záruba
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:64cea9a0-0a8f-4a13-be9b-13ea26477ee2@volny.cz">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<p><font face="Arial">Dík. To mě fakt nenapadlo. Nikde jsem
nenašel, parametr l. No patří mi to.</font></p>
<p><font face="Arial">Lze ho nějak podobně donutit i k formátování
float? Vypisuje otazník.</font></p>
<pre class="moz-signature" cols="72">Martin Záruba
P.S. co je špatného na printf v jednočipu?
</pre>
<div class="moz-cite-prefix">Dne 15.4.2024 v 13:58 Jan Waclawek
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:PC195202404151358570510c685c677@wekPC">
<pre class="moz-quote-pre" wrap="">%lu
C99, 7.19.6.1#7 (conversion modifier l)
Conversion specifier, t.j. "zakladny typ", co je tu to "u", je v tych %xxx
vzdy posledne.
wek
PS. <flame on> Na odtazku z nadpisu mam chut odpovedat, ze "pouzivate
*printf v jednocipe"...
----- Original Message ---------------
</pre>
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">Prostě se to někde orizne na 16bitů. Nemá to být ul?
Opět upozorňuji na zdravý zvyk používat snprintf...
J.
---------- Původní e-mail ----------
Od: Martin Záruba <a class="moz-txt-link-rfc2396E" href="mailto:swz@volny.cz" moz-do-not-send="true"><swz@volny.cz></a>
Komu: Martin Zaruba <a class="moz-txt-link-rfc2396E" href="mailto:hw-list@list.hw.cz" moz-do-not-send="true"><hw-list@list.hw.cz></a>
Datum: 15.04.2024 13:35:10
Předmět: sprintf - co dělám blbě?
"
Tento triviální kousek programu
char sStringBuffer[50];
sprintf(sStringBuffer,"%6u",(uint32_t)123456);
Serial.print(sStringBuffer);
vrací hodnotu 57920. Ale proč?
</pre>
</blockquote>
</blockquote>
</blockquote>
<br>
</body>
</html>