Subject: Re: CVS commit: src/distrib/utils/sysinst
To: None <jhawk@mit.edu>
From: None <cgd@broadcom.com>
List: source-changes
Date: 07/18/2003 09:14:04
At Fri, 18 Jul 2003 15:28:07 +0000 (UTC), "John Hawkinson" wrote:
> Perry E. Metzger <perry@piermont.com> wrote on Fri, 18 Jul 2003
> at 10:21:31 -0400 in <87n0fbx6dw.fsf@snark.piermont.com>:
> 
> > David Laight <dsl@netbsd.org> writes:
> > > Change a lot of 'if (strlen(x) == 0)' to 'if (x[0] === 0)'.
> > 
> > Why bother? Was this performance critical code? The former is clearer
> > to the reader.
> 
> I do not think you can seriously argue that the clarity is stronger
> either way.

I'd disagree: the former includes some semantic meaning that the
latter does not.

the former says "check the length of the string 'x' against 0".

the latter says "does the first byte of the memory pointed to by 'x'
happen to be 0?"


You might do the latter for many reasons, and a true newbie might not
even understand that the latter has the effect of the former.


in terms of efficiency, i'd be a little surprised if current GCC
development sources (with builtins allowed and optimization on)
wouldn't transform the strlen(x) == 0 into the NUL cehck.




cgd
-- 
Chris Demetriou                                            Broadcom Corporation
                Principal Design Engineer, Broadband Processors
  Any opinions expressed in this message are mine, not necessarily Broadcom's.