Koliko ja znam, u običnom C-u se sa "logičkim" izrazima može raditi sve što može i sa celobrojnim tipovima, kao i obrnuto. Tako su sledeći izrazi validni (tacno(), netacno() su logičke funkcije i p je logička promenljiva, a i,j,k su int tipa):
Code:
i = (tacno() + netacno()) && j;
p = (netacno() || k);
j = k * (tacno() || p);
Standardan C vraća nenula vrednost ako je izraz tačan (ali je to ipak najčešće 1), odnosno nulu ukoliko je izraz netačan. Isto tako i obrnuto, svaki nenula izraz se tretira kao tačno, a nula kao netačno.
Naravno, ovo sve važi za C, ali pretpostavljam da važi i za C++ i da je bool tip koji je u njemu definisan, definisan samo da bi bila izbacivana upozorenja prilikom ovakvih raznih "caka" i "trikova", i najverovatnije i radi čitljivosti koda (pa pretpostavljam da mu je dužina 8-bita kao i char na nama dostupnim mašinama).
Ovaj deo o C++ je samo pretpostavka, ali to nije teško proveriti.
Toliko.
dodatak: jedna sintaksna greška ispravljena
[
Ovu poruku je menjao tOwk dana 07-08-2001 u 11:03 PM GMT]
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.