Re: Složené podmínky

Pavel Hudeček edizon na seznam.cz
Čtvrtek Duben 11 10:25:57 CEST 2024


Pokud jde jen o komentování, tak se dá i jeden if rozdělit na víc řádků 
a odpadne hromada bloků:

if (podmínka1 // koment 1
    && podmínka2 // koment 2
    && podmínka3 { // koment 3
       podmíněný kód
}

Tohle teda spíš používám když jsou podmínky moc dlouhé. Třeba u nových 
AVR nic neobvyklého, tam má snad i většina knihovních definů od bitů 10+ 
znaků.

V C je možné cokoli, jen dát pozor, jestli je to přehledné pro ty co to 
pak někdy budou číst. Případně jestli je to v souladu s podmínkami 
zadavatele, třeba jestli požaduje MISRA, nebo má nějaké speciální 
preference. Já třeba nerad používám nadbytečné závorky ve výrazech typu 
if (a && b || c), ale když zadavatel chce, mu je tam klidně dám: if ((a 
&& b) || c)

PH

Dne 11.04.2024 v 9:39 Jaroslav Buchta napsal(a):
> Ale nemelo by se aspon zapomenout na to, ze pravidla psani bezpecneho 
> kodu doporucuji (nebo narizuji? ) pouzivat bloky i pro jeden prikaz.
> takze spis
>
> if (podminka1)
>
> {   // komentář1
>
>   if (podminka2)
>
>   { // komentář2
>
>     if (podminka3)
>
>     { // komentář3
>
>      }
>   }
> }
>
> a to uz je trosku roztahane...
>
> Dne 11.04.2024 v 7:28 Martin Záruba napsal(a):
>>
>> Mě ten druhý zápis připadá přehlednější, protože lze udělat zápis:
>>
>> if (podminka1)   // komentář1
>>
>>   if (podminka2) // komentář2
>>
>>     if (podminka3) // komentář3
>>
>>       {};
>>
>>
>> a navíc při ladění pokud chci na zkoušku podmínku vyhodit, stačí na 
>> začátek napsat //
>>
>> Martin Záruba
>> Dne 10.4.2024 v 21:46 Jaroslav Buchta napsal(a):
>>> I v prvním případě je přesně definováno pořadí a pravidla vyhodnocení.
>>> Druhý zápis jsem snad nikdy nikde neviděl, že by někoho napadlo použít.
>>>
>>> Dne 10.04.2024 v 21:44 Pavel Hudeček napsal(a):
>>>> V prvním případě necháte na překladači, jaké pořadí vyhodnocení 
>>>> zvolí, ve druhém zajistíte pořadí, takže např. při nesplnění 
>>>> podmínky 1 nevadí, že na podmínce 2 by to zrovna teď zhavarovalo.
>>>>
>>>> PH
>>>>
>>>> Dne 10.04.2024 v 18:17 Martin Záruba napsal(a):
>>>>> Jestliže potřebujete vyhodnotit, že je splněno více podmínek 
>>>>> současně, používáte zápis
>>>>>
>>>>> if (podminka1 && podminka2 && podminka3 .....) {};
>>>>>
>>>>> nebo
>>>>>
>>>>> if (podminka1) if (podminka2) if (podminka2) ..... {};
>>>>>
>>>>> Je v přeloženém kódu nějaký rozdíl nebo je to jedno?
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240411/58b56660/attachment.htm>


Další informace o konferenci Hw-list