Signed word lengths and indexes

Steven Schveighoffer schveiguy at yahoo.com
Tue Jun 15 05:10:32 PDT 2010


On Tue, 15 Jun 2010 07:30:52 -0400, bearophile <bearophileHUGS at lycos.com>  
wrote:

> Steven Schveighoffer:
>> i is unsigned, and therefore can never be less than 0.  It's actually a
>> clever way to do it that I've never thought of.
>
> Clever code is bad. It must be minimized. In some rare situations it  
> becomes useful, but its usage must be seen as a failure of the  
> programmer, that was unable to write not-clever code that does the same  
> things.

Clever code is bad?  What are you smoking?  In my opinion, clever code  
that is clear and concise should always be favored over code that is  
unnecessarily verbose.

In this particular instance, the code is both clear and concise.

The following line of code should generate the exact same code, but is  
more verbose:

for(uint i = end - 1; i < length && i >= 0; --i)

The compiler will throw away the second check during optimization, because  
i is always >= 0.  I don't see why such code should be preferred.

-Steve


More information about the Digitalmars-d mailing list