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