Prosba o pomoc - nechapu zapis v C

miro as5sgm na gmail.com
Pondělí Listopad 21 11:38:09 CET 2022


Zvacsa je to o zvyku, ale za mna je zatvorka na konci prehladnejsia 
(vidim vacsiu cast kodu) + pri dobrom odsadeni(nepouzivat tabulator :D ) 
to je jasne ihned. Navyse moderne IDE prostredia maju super zvyraznnia 
bloku, zatvoriek atd....


On 21. 11. 2022 11:31, Jaroslav Buchta wrote:
> Kdyz uz me prastily do oka zavorky bloku jak je nesnasim, jaky je 
> obecne pomer pouzivani tohoto stylu a zapisu ktery preferuji?
>
> if (flags & FLAG_PRIKLAD)
> {
>      // kod pro priklad
> }
>
> U to ho druheho zapisu nikdy nemuzu na prvni pohled najit, jak zavorky 
> k sobe patri i kdyz je to na vysku kompaktnejsi.
>
>
>
> Dne 21.11.2022 v 11:13 Tomáš Hamouz napsal(a):
>> I MISRA může mít výjimky, když si je implementátor odůvodní.
>> Já třeba pro otestování jednotlivých bitů taky zkracuju.
>>
>> Tedy
>>
>> #define  FLAG_PRIKLAD    0x01
>>
>>    if (flags & FLAG_PRIKLAD) {
>>       // kod pro priklad
>>    }
>>
>>
>> podle MISRA by mělo být
>>
>>    if ((flags & FLAG_PRIKLAD) != 0) {
>>
>> ale to mi přijde výrazně nepřehlednější.
>>
>> Tomáš
>>
>>
>>> 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
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list