C programming syle poll

Doug Gwyn gwyn at brl-vgr.ARPA
Wed May 2 08:01:55 AEST 1984

	x == 5
evaluates to 1 (nothing else!) if true, 0 if false.

However, I agree that
	y = x == 5;
is poor programming practice IF Y IS AN INT.  It is perfectly okay if
you make the distinction between ints and Booleans, and is common
practice in well-written Pascal and even Fortran.  E.g.

typedef int	bool;

	register bool	y;
	int		x;

	y = x == 5;
	if ( y )

I recommend AGAINST performing arithmetic with Booleans (i.e., using
a Boolean datum as a numerical 1 or 0); this is illegal in other
Algol-based languages and comes under the heading of "tricky" coding.

I religiously keep ints and Booleans distinct in my code and have
found that it helps keep the code clean and understandable.

More information about the Comp.lang.c mailing list