Boolean Operators Slighted in C
Jim Hutchison
hutch at sdcsvax.UUCP
Tue May 13 03:42:09 AEST 1986
()
well now for ||= you can use |= because C defines 0 as false and non-0
as true (Yes, I know that boolean expressions are defined to return 0/1
as defined in K&R if that is still used).
typedef char bool;
#define B_TRUE ((bool)1)
#define B_FALSE ((bool)0)
bool a, b;
a = B_TRUE;
b = (x == READY);
...
b |= (x == READY);
b ^= a;
Now this can get you into trouble, because 2 and 1 and 47 are also
"true". This is o.k. for '|' but not '^'.
You could of course do
b = (b == 0) ^ (a == 0)
but that looks a bit strained.
--
/* Jim Hutchison UUCP: {dcdwest,ucbvax}!sdcsvax!hutch
ARPA: Hutch at sdcsvax.ucsd.edu
[ Disclaimer eaten by a passing kiwi ] */
More information about the Comp.lang.c
mailing list