Prosba o pomoc - nechapu zapis v C

Pavel Hudeček edizon na seznam.cz
Pondělí Listopad 21 10:54:15 CET 2022


S těma závorkama je to těžký...
Když je výraz krátkej, je dostatečně přehlednej s i bez, teda aspoň 
pokud se v něm nevyskytují méně obvyklé operátory.
Když je dlouhej, je nepřehlednej s i bez, takže je nakonec lepší doplnit 
přiměřený počet závorek, aby se zkrátily bezzávorkové části na dobře 
přehlednou úroveň a přitom počet závorek nedošel k nepřehledné 
přezávorkovanosti.
Blbý je, když je vyžadováno 100% dodržení MISRA.

PH

Dne 21.11.2022 v 10:39 Tomáš Hamouz napsal(a):
>> To zkrácení Decoff != 0 na Decoff funguje tak, že při vyhodnocování logické podmínky
>> se element "spočte" a pokud je výsledek cokoli různého od nuly, je to splněno
>> ("ano", "true", "platí"). Pokud je nula, neplatí. Takže explicitní test na nulovost
>> se nemusí psát, stačí se podívat na tu hodnotu jako takovou. Takže v C/C++ se to
>> prostě píše rovnou krátce. Je to asi jako kdybyste v Pascalu psali if A=true then
>> ... místo if A then ... Přeloží se to oboje stejně, ale je to delší na zápis a
>> trochu méně přehledné a může to mást.
> To je samozřejmě pravda, ale už i C komunita občas pochopila, že to je
> sémanticky špatně. Viz třeba MISRA
>   - rule 12.1 - závorkování výrazů, nespoléhat na precedenci operátorů
>   - rule 14.4 - výraz pro if má být typu boolean


Další informace o konferenci Hw-list