[U-Boot] use of C99

Scott Wood scottwood at freescale.com
Wed Apr 8 22:52:26 CEST 2009


Timur Tabi wrote:
> On Wed, Apr 8, 2009 at 2:46 PM, Jerry Van Baren <gerald.vanbaren at ge.com> wrote:
> 
>> ACK.  I don't expect to see variables spring into life in the middle of
>> nowhere.
> 
> I don't see what's wrong with that.  The advantage is that the
> variable is close to where it's being used, so that you can see the
> context more easily.

Agreed.  In many cases it reduces clutter by eliminating the need for 
separate declaration and assignment.

> I don't see what the value is of limiting the lifetime of the
> variable. 

It frees the variable up for later such blocks to use.  As does 
declaring iterators inside a for loop, but I guess that's forbidden as 
well. :-)

> It's just going to use this for syntax checking.  If you define and
> initialize a variable at the top of the function, but don't use that
> variable until a hundred lines later, the compiler is going to
> initialize the variable when it's first used, not when the function is
> first entered.  Chances are it's not even going to define stack space
> for it.

Chances are it will allocate all stack space for all variables up front, 
regardless of where they're declared.

>> #ifdef CONFIG_COOL_FEATURE
>>        {
>>                u32 myvarrocks = foo * bar * bar;
>>
>>                gd->neato = myvarrocks
>>        }
>> #endif
>>
>> Is this an acceptable compromise?
> 
> This is what we do today, and I think it's ugly.

Yes.  But not as ugly as having two #ifdef blocks.

-Scott


More information about the U-Boot mailing list