<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    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>
  </body>
</html>