<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Jo, to je taky zakladni doporuceni v
MISRA...</div>
<div class="moz-cite-prefix">Jeste k tem zavorkam, kdyz to vidim,
tento zapis me naprosto irituje, podle me vubec nejsou prehledne
bloky. Jak jsem pochopil, je pro to i ruzne pojmenovani
formatovani textu.</div>
<div class="moz-cite-prefix">Proc normalne vsichni nepouzivaji:</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">if(..)</div>
<div class="moz-cite-prefix">{</div>
<div class="moz-cite-prefix"> if(..)</div>
<div class="moz-cite-prefix"> {<br>
</div>
<div class="moz-cite-prefix"> neco;</div>
<div class="moz-cite-prefix"> }</div>
<div class="moz-cite-prefix"> neco;<br>
</div>
<div class="moz-cite-prefix">}</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">?<br>
</div>
<div class="moz-cite-prefix">Dne 06.09.2023 v 23:09 Petr Labaj
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:5e077585-4bf7-dbca-0077-639015b0bd67@volny.cz">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Jen úplně nepodstatná poznámka:<br>
právě kvůli nebezpečí nějakého odsunutí nebo naopak dopsání, které
by už bylo mimo podmínku, používám zásadně blokové závorky i při
jediném příkazu v if.<br>
<br>
Tedy ne:<br>
if (kozy>2) splnuje_predpoklady=1;<br>
<br>
ale<br>
<br>
if (kozy>2) {<br>
splnuje_predpoklady=1;<br>
}<br>
<br>
PL<br>
<br>
********************<br>
<br>
<div class="moz-cite-prefix">Dne 6.9.2023 v 22:45 Pavel Hudeček
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:bfde7772-53d5-7a5c-5c26-5063149aed84@seznam.cz">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
Já si myslím, že tohle je typický příklad umělé konstrukce,
kterou přímo v této podobě nikdo normálně nepoužije. Jenže šedá
je teorie a zelený strom života...<br>
<br>
Měříme na pár kanálech ADC a jednou to uděláme bez přerušení a
podruhé s:<br>
<br>
<b>for (uint8_t mxIdx=AD_chanStart; mxIdx<=AD_chanEnd;
mxIdx++)</b> {<br>
ADC0_MUXPOS = mxIdx;<br>
...<br>
adData[mxIdx-AD_chanStart] = ADC0_RES;<br>
}<br>
<br>
Normální for, v jednom řádku se dozvíme od, do a po jak velkých
krocích.<br>
<br>
Jenže normálně nechci měřit for cyklem a v něm čekat až je
změřeno, takže chci použít přerušení. Ale v něm chci mít taky
takový jeden řádek, kde je jedna konstrukce s od, do a po jakých
krocích.<br>
<br>
ISR (ADC0_RESRDY_vect) {<br>
static uint8_t mxIdx=AD_chanStart;<br>
<br>
adData[mxIdx-AD_chanStart] = ADC0_RES;<br>
<b> if (++mxIdx > AD_chanEnd) mxIdx = AD_chanStart;</b><br>
...<br>
}<br>
Jen je škoda, že ta inicializační hodnota je tam dvakrát. Ale
pořád je to lepší, než rozdělený na řádky ++ a if. Proč? Jednak
když to vidím, tak je to jako vidět ten for, prostě jasná
konstrukce, kde hned vím co dělá a proč. No a hlavně se při
nějaké úpravě nemůže snadno stát, že se z toho omylem kus
odsune, vymaže, či zkopíruje kam nemá.<br>
<br>
Je možné, že když to někdo vidí poprvé, tak mu to chvíli jasné
není. Jakmile to pochopí, tak je to prostě standardní konstrukce
s na první pohled jasným chováním, stejně jako for použitý
běžným způsobem.<br>
<br>
PH<br>
<br>
<div class="moz-cite-prefix">Dne 06.09.2023 v 21:38 Petr Labaj
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:722c8265-7f7e-c703-e913-f92a8bf9683f@volny.cz">Myslím,
že jde o to, jak má člověk nastaveno samohodnocení. <br>
Jestli na svém interním žebříčku postoupím výše pokud napíšu
fakt prďáckou konstrukci, kterou nikdo jiný napsat neumí. <br>
Nebo jestli naopak postoupím tehdy, pokud napíšu program,
který je každému jasný na první pohled. <br>
<br>
a=i--; <br>
a=--i; <br>
<br>
je jistě správně. <br>
Ale pokud napíšu <br>
a=i; <br>
i--; <br>
<br>
i--; <br>
a=i; <br>
<br>
tak je to stejné, a zřejmě i kompilátor to přeloží stejně nebo
skoro stejně. <br>
<br>
A otázka: <br>
Který z těch zápisů je na první pohled jasnější, a kde spíš
neudělám chybu? Ne v okamžiku, kdy se soustředím na kvíz, ale
kdy jsem unavený a mám vytahané očí čuměním 10 hodin na
monitor. <br>
Který zápis bude pochopitelnější kolegovi, který sice
programuje PLC, ale C viděl jen z rychlíku? <br>
<br>
PL <br>
<br>
******************** <br>
<br>
Dne 6.9.2023 v 21:22 Jindrich Fucik napsal(a): <br>
<blockquote type="cite">... <br>
Protože pochopitelně i tohle je správný zápis: <br>
a=i--; <br>
a=--i; <br>
a kupodivu "a" se bude lišit. <br>
... <br>
</blockquote>
</blockquote>
<br>
</blockquote>
<br>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<p><br>
</p>
</body>
</html>