<stdbool.h>/C23 bool/true/false; was: goto considered harmful; was: ceckovy kviz 2 (hardcore)

Jindroush jindroush na seznam.cz
Pátek Září 8 13:20:09 CEST 2023


To, ze lze delat aritmetika, budiz, to je samozrejme prasarna, tj. ve 
smyslu jeden int + jeden bool = skoro 2 floaty ;)
Ale ktera (at uz implicitni nebo explicitni) konverze v C mi muze nejak 
zmastit 0 a nenulu na neco jinyho, aby pak boolove porovnani nefungovalo?
J.

On 08.09.2023 13:11, Jan Waclawek wrote:
> No zakladny problem v tom C je, ze ten _Bool je dodatocny hack, a je to
> celociselny typ.
>
> V "lepsich" jazykoch je to jednoducho iny nez celociselny typ, takze veci
> ako porovnanie neprichadzaju (bez explicitneho pretypovania, napr. cez
> ord()) do uvahy, takze toto jednoducho nie je otazka.
>
> Lenze v C, kedze to je celociselny typ, da sa s nim robit aritmetika
> (vratane porovnania s inymi celociselnymi hodnotami) a treba mu priradit
> hodnotu; no a 0 aj 1 sa daju reprezentovat vo vsetkych ostatnych
> celociselnych typoch, takze tam je najmenej problemov pri konverziach.
>
> wek
>
> ----- Original Message ---------------
>
> Jeste jsem nad tim dumal a rikam si, proc je true dano jako 1? Jedine,
> co me napada, je kvuli porovnani, ale kdo by to delal?
>
> Ziju v tom, ze ve drevnich dobach se definovalo FALSE 0 a TRUE !FALSE
> (nebo 1!=0 a 1==1) a pak se na vyhodnocovani pouzivaly jen 'kratke' ify
> a boolovska logika, proto mit TRUE definovano jako 1 neni vlastne k nicemu.
>
> tj. kdo pise if( result == true ) vs if( result )?
>
> J.
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


-- 
Jindroush <jindroush na seznam.cz>



Další informace o konferenci Hw-list