Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 Mar 2002 11:37:42 +0100
From:      Poul-Henning Kamp <phk@critter.freebsd.dk>
To:        "Mike Meyer" <mwm-dated-1015842633.bc6005@mired.org>
Cc:        obrien@FreeBSD.ORG, Mike Meyer <mwm-dated-1015831171.a21ab0@mired.org>, Giorgos Keramidas <keramida@FreeBSD.ORG>, hackers@FreeBSD.ORG
Subject:   Re: RFC: style(9) isn't explicit about booleans for testing. 
Message-ID:  <30203.1015411062@critter.freebsd.dk>
In-Reply-To: Your message of "Wed, 06 Mar 2002 04:30:32 CST." <15493.61384.557931.883967@guru.mired.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <15493.61384.557931.883967@guru.mired.org>, "Mike Meyer" writes:

>I'll grant that the change Paul suggested makes it clear - the
>programmer knows when the function is returning an int or not. But
>it's not clear that it achieves his intent. is
>
>	char *p;
>	if (p = somerandomfunction(with, args)) {
>	}
>
>really less readable than:
>
>	char *p;
>	if ((p = somerandomfunction(with, args)) != NULL) {
>	}

Ahh, but here you hit one of my pet-peeves.  I hate assignments inside
conditionals.  I prefer the above written as:

 	char *p;
 	p = somerandomfunction(with, args);
 	if (p != NULL) {

 	}

Anyway, if you want it spelled out the way I would want it:

0. No assignments in if()

1. In conditions, pointers should be explicitly compared against NULL:

	if (foo == NULL)
or
	if (foo != NULL)

2. In conditions, non-interger numeric types should be explicitly compared
   to zero

	if (float_t == 0.0)

3. Integers need not be explicitly compared to zero:

	if (foo & MASK)
not
	if ((foo & MASK) != 0)


-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?30203.1015411062>