Inkrementalni cidlo - cudlik

Josef Štengl ok1ced na nagano.cz
Pondělí Červenec 25 13:56:41 CEST 2016


U logických a bitových operátorů jsem viděl (a udělal :-) už tolik chyb, že už píšu (a vyžaduji) závorky všude.
Priority operátorů totiž málokdo perfektně zvládá. A tak vznikají nepříjemné chyby, které se obtížně hledají.

Další problémy jest u kombinací logických a bitových operátorů v jednom výrazu. Když pak po někom děláte revizi, tak jen 
budete hádat, jak to autor myslel (to co napsal je zřejmé). Jemu to jasné je, ale bohužel jen jemu :-(.




Dne 25.7.2016 v 13:26 Pavel Hudecek napsal(a):
> Já to mám přesně naopak. Závorky používám, když potřebuji přebít implicitní priority, když si s prioritou nejsem jist (ale
> stejně si ji při té příležitosti najdu, protože neznalost mě irituje), nebo výjimečně když se mi zdá, že by to mohly
> zpřehlednit (ale na to většinou stačí někam dát/nedat mezeru).
>
> Výrazy typu
> a==b && b<4 || c<x-5
> považuji za na první pohled jasné.
>
> Když tohle někde vidím se závorkami, jejich studování mě jen zdržuje. Kopíruji-li podobně přezávorkované věci do svých
> projektů, závorky odmazávám, podobně jako /* a */ u jednořádkových komentářů.
>
> Možná, že zde je důvod, který vedl autora C k nezavedení ^^: Rozdíl mezi prioritou AND a OR je všeobecně známý a
> zakořeněný, XOR by do toho mohl zavést zmatky. :-)
>
>>  vím, co jsem si myslel, když to později čtu
> Tohle se mu mě projevuje spíš u číselných konstant:
> Spočítání třeba 255-125 nechám na kompileru a tak zůstane zachována informace, z čeho to vzniklo.
>
> PH
>
> -----Původní zpráva----- From: Josef Štengl
> No ale ono se většinou na prioritu kašle a píší se stejně závorky. Nejde o to, že by to bylo hezčí, nebo složité si ji
> pamatovat.  Důležitější je, že je vidět co autor zamýšlel. Velmi užitečné. Nepamatuji si prioritu u žádného programovacího
> jazyka, ale vím, co jsem si myslel, když to později čtu :-)
>
> Ani v prvním ani v druhém případě bych nevěděl, co tím autor myslel.
>
> && a || je k logickému testování oproti nule.
>
>
> Dne 23.7.2016 v 21:35 Pavel Hudecek napsal(a):
>> Ale má úplně jinou prioritu, než logické operátory, navíc stejnou jako ==.
>>
>> Příklad:
>>
>> a == b ^^ x == 1
>> - vyhodnotily by se rovnosti a pak xor mezi nimi
>>
>> a == b != x == 1
>> - vyhodnotí se levá rovnost, potom zda se její výsledek rovná x, ...
>> - hlásí mi warning, že by to chtělo závorky... tentokrát zcela oprávněně.
>>
>> ale zdá se, že by vlastně mělo fungovat i:
>> a == b ^ x == 1
>> ... i když hlásí stejný warning
>>
>> Pak je ale otázka, k čemu je potřeba && a ||
>>
>> PH
>>
>> -----Původní zpráva----- From: Miroslav Mraz
>>
>> Protože je !=
>>
>> Mrazík
>>
>> Dne 23.7.2016 v 20:22 Pavel Hudecek napsal(a):
>>> Mimochodem, proč když je && a || není taky ^^?
>
> _______________________________________________
> 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