<stdbool.h>/C23 bool/true/false; was: goto considered harmful; was: ceckovy kviz 2 (hardcore)
Jan Waclawek
konfera na efton.sk
Pátek Září 8 13:11:47 CEST 2023
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.
Další informace o konferenci Hw-list