<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>preco chcete setrit pismenkami? <br>
</p>
<p>podla mna je dolezitejsie aby to bolo lahko citatelne komukolvek.</p>
<p>lebo ak chcete mat portovatelny kod tak musi byt trocha odolny,
taktiez pri testovani ked potrebujete vediet ktory vyraz ma aku
hodnotu, alebo pre logovanie.</p>
<p>je kopec rieseni ktore na prvy pohlad zjednodusuju program ale
nakoniec sa mozu skaredo vypomstit</p>
<br>
<p><span style="font-size:10.0pt;font-family:"Courier
New"">>>>A bylo by docela zajímavé se podívat jak
se liší zkompilovaný kód v obou případech.</span></p>
<p><span style="font-size:10.0pt;font-family:"Courier
New"">>>>Myslím že by tam velké rozdíly nebyly.<br>
</span></p>
<p>to by aj mna by zaujimalo :)<br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 21. 4. 2020 12:39, Pavel Hudecek
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:U.5tjvD.3hFTeP4JVNA.1Udira@seznam.cz">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style>
<div class="WordSection1">
<p class="MsoNormal">No jo, ale to pak na místě použití není
vidět, jaké že ty podmínky jsou. Předpokládám, že funkce bude
dle firemních pravidel definována v nějakém externím souboru.
Nedej bože, když takových sad podmínek bude víc. To pak budou
názvy těch funkcí tak dlouhé, že určitě poruší nějaké délkové
pravidlo, ohledně délky řádku:-)</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Normálně bych pro zvýšení přehlednosti dal
mezery okolo + (což jsem ale pro zabránění zalomení v mailu
vynechal). Uvažoval bych ještě o další závorce okolo součtu.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Použití funkce pro mě přehlednost jasně
snižuje:-) Navíc <span
style="font-size:10.0pt;font-family:"Courier New"">MIN_A_COUNT
a</span> <span
style="font-size:10.0pt;font-family:"Courier New"">REMAING_COUNT</span>
jsou vyloženě matoucí názvy pro podmínky nesouvisející s
count:-) Jinak teda proti použití define nic nenamítám, běžně
používám, ale zas je to zbytečná komplikace do ukázky typu
kódu v mailu.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">K čemu teda máme různé jazyky, když bychom
nemohli využívat jejich výhod?</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">PH</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div
style="mso-element:para-border-div;border:none;border-top:solid
#E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="border:none;padding:0cm"><b>Od: </b><a
href="mailto:tomas.hamouz@divesoft.com"
moz-do-not-send="true">Tomáš Hamouz</a><o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span
style="font-size:10.0pt;font-family:"Courier New"">Myslím
že lepší otázka zní, jak to napsat tak aby bylo na první
pohled jasné co daný výraz vyhodnocuje, <br>
bez ohledu na počet písmenek.<br>
<br>
Abych planě nekritizoval, nejspíš bych to udělal takhle, ale
protože nevím účel celé konstrukce,<br>
tak by bylo třeba lepší zahrnout i porovnání s trijkou.
Podmínku malého počtu písmenek zcela zjevně <br>
nesplňuju, ale to zcela záměrně, protže bych se v tom rád
vyznal i po několika letech kdy jsem to neviděl.<br>
<br>
<br>
#define MIN_A_COUNT 2 // vyznam
teto konstanty<br>
#define REMAING_COUNT 12 // vyznam teto
konstanty<br>
#define MINIMAL_COND_COUNT 3 // vyznam teto
konstanty<br>
<br>
static inline int count_test_conditions(int a, int b, int x,
int y) <br>
{<br>
int count = 0;<br>
if (a < MIN_A_COUNT) {++count;} // oduvodneni
teto podminky<br>
if (a > b) {++count;} // oduvodneni
teto podminky<br>
if (x < y) {++count;} // oduvodneni
teto podminky<br>
if ((a%x) == REMAING_COUNT) {++count;} // oduvodneni
teto podminky<br>
if (b < y) {++count;} // oduvodneni
teto podminky<br>
return count;<br>
}<br>
<br>
if (count_test_conditions(a, b, x, y) > 3) {<br>
}<br>
<br>
<br>
A bylo by docela zajímavé se podívat jak se liší
zkompilovaný kód v obou případech.<br>
Myslím že by tam velké rozdíly nebyly.<br>
<br>
<br>
</span><o:p></o:p></p>
<table class="MsoNormalTable" cellpadding="0" border="0">
<tbody>
<tr>
<td style="width:1.5pt;background:blue;padding:.75pt .75pt
.75pt .75pt" width="2"><br>
</td>
<td style="width:768.75pt;padding:.75pt .75pt .75pt .75pt"
width="1025">
<p class="MsoNormal">Otázka tedy zní, jak ho upravit,
aby prošel a přibylo co nejméně písmenek:-)<br>
<br>
PH<br>
<br>
<b>Od: </b><a href="mailto:as5sgm@gmail.com"
moz-do-not-send="true">as5sgm@gmail.com</a><br>
<span
style="font-size:10.0pt;font-family:"Courier
New"">>>> If
((a<2)+(a>b)+(x<y)+(a%x==12)+(b<y) >
3) {<br>
Tento riadok kodu by nepresiel review a ani MISRA
rules, vsade kde su aspon dvaja vyvojari :)<br>
Miro<br>
<br>
</span>On 21. 4. 2020 10:37, Pavel Hudecek wrote:<br>
Vzhledem ke komutativnosti sčítání by pořadí mělo bejt
irelevantní, kromě toho posledního >, ale to má
nižší prioritu než +, takže se musí vyhodnotit jako
poslední.<br>
<br>
No a že to nebude fungovat v jiných jazycích? To je
snad normální. Nebo všechny mají ++, printf, pointery
jako Delphi, nepotřebují deklarovat proměnné jako VB6,
… ?<br>
<br>
Příkazů je tam 0, takže omezení na max. jeden na řádek
to taky nepřekračuje.<br>
<br>
PH<br>
<br>
<b>Od: </b><a href="mailto:a2x1nptda8@email.cz"
moz-do-not-send="true">Michal Gregor</a><br>
Spravne se maji slozite podminky prevest do funkci.
Plati zasada jeden <br>
radek jeden prikaz. A nespolehat se na interni "tajne"
funkce <br>
compilatoru. Co kdyz to nekdo skopiruje do C++? Nebo
do uplne jineho jazyja.<br>
<br>
<br>
Dne 21.04.2020 v 8:46 Jan Waclawek napsal(a):<br>
> A nemohlo to byt skor o tom, ze v takychto
vyrazoch<br>
> <br>
>>> If
((a<2)+(a>b)+(x<y)+(a%x==12)+(b<y) > 3)
{<br>
> <br>
> nie je zarucene poradie vyhodnotenia pod-vyrazov,
aj keby mali vedlajsie<br>
> efekty?<br>
> <br>
> wek<br>
> <br>
> <br>
> ----- Original Message ---------------<br>
>> Sa vam dvom do toho zamontujem, som nieco
nasiel vo svojom archive, ale<br>
>> Ty si mimo podozreni :)<br>
>> Skor si ja pofajcim, ze uz kedy som daval do
placu citat z normy, ktory<br>
>> si teraz dal aj Ty :-D<br>
>> <br>
>> <a
href="https://list.hw.cz/pipermail/hw-list/2011-July/399004.html"
moz-do-not-send="true">https://list.hw.cz/pipermail/hw-list/2011-July/399004.html</a><br>
>> <br>
>> miro<br>
>> <br>
>> On 21.4.2020 1:17, Jan Waclawek wrote:<br>
>>> Hm, tak ja vidim vyhody skor v tych 6
ifoch a 1 pomocnej premennej...<br>
>>> <br>
>>> Ale ak by si nahodou nasiel odkaz, kde
ten JW z minulosti povedal, ze<br>
>>> vysledkom podmienky nemusi byt 0 alebo 1,
tak by som Ti bol vdacny.<br>
>>> <br>
>>> wek<br>
>>> <br>
>>> <br>
>>> ----- Original Message ---------------<br>
>>> Tak?e se po pár misících mu?u vrátit k
tomu, ?e jedna z výhod C je mo?nost<br>
>>> dilat vici, jako:<br>
>>> <br>
>>> If
((a<2)+(a>b)+(x<y)+(a%x==12)+(b<y)> 3)
{<br>
>>> <br>
>>> Co? v jiných jazycích vede na 6 ifu a 1
pomocnou prominnou.<br>
>>> <br>
>>> PH<br>
>>> <br>
>>> Od: Jan Waclawek<br>
>>> <br>
>>> Hm, tak potom by som mal asi tomu JW z
minulosti jednu tresnut...<br>
>>> <br>
>>> Konkretne teda, C99, 6.5.8 Relational
operators #6:<br>
>>> Each of the operators< (less
than),> (greater than),<= (less than or<br>
>>> equal to), and>=<br>
>>> (greater than or equal to) shall yield 1
if the specified relation is true<br>
>>> and 0 if it is false. 92)<br>
>>> The result has type int.<br>
>>> <br>
>>> Ten footnote 92) je kuzelny:<br>
>>> The expression a<b<c is not
interpreted as in ordinary mathematics. As the<br>
>>> syntax indicates, it<br>
>>> means (a<b)<c; in other words, ??if
a is less than b, compare 1 to c;<br>
>>> otherwise, compare 0 to c??.<br>
>>> <br>
>>> wek<br>
>>> <br>
>>> <br>
>>> ----- Original Message ---------------<br>
>>> <br>
>>> Mil jsem nijak za to, ?e to byl právi
jistý JW, kdo mi tu onehdá vyeetl, ?e<br>
>>> spoléhat se, ?e výsledkem podmínky je 0
nebo 1 není správné:-)<br>
>>> <br>
>>> PH<br>
>>> <br>
>>> Od: Jan Waclawek<br>
>>> <br>
>>>> A jinak teda ten kód udilá to, ?e
pokud je splnina podmínka v závorce, nastaví se bit 0
na výstupní (zda to bude bit 0 není zarueeno, ale
jinak skoro jisté).<br>
>>> <br>
>>> Preco by to nemal byt bit 0?<br>
>>> <br>
>>>
_______________________________________________<br>
>>> <br>
>>>>> <br>
>>>>> DDRB |=(1<CLK_UP); <br>
<span
style="font-size:10.0pt;font-family:"Courier
New""> </span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></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>
</body>
</html>