|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC v2 06/13] libxl: permit declaration after statement
On Mon, 28 Nov 2011, Ian Jackson wrote:
> Stefano Stabellini writes ("Re: [Xen-devel] [PATCH RFC v2 06/13] libxl:
> permit declaration after statement"):
> > I think it would make sense to add to the CODING_STYLE that variable
> > declarations shouldn't be mixed with code, unless part of a macro or an
> > alloca-like construct.
>
> I think this is a silly rule. In my proposed commit message I
> advanced three reasons for allowing declaration after statement:
>
> > > * It allows variables to be more often initialised as they are
> > > declared, thus reducing the occurrence of uninitialised variable
> > > errors.
> > >
> > > * Certain alloca-like constructs (arrays allocated at runtime on the
> > > stack) can more often be written without a spurious { } block.
> > > Such blocks are confusing to read.
> > >
> > > * It makes it easier to write and use macros which declare and
> > > initialise formulaic variables and do other function setup code,
> > > because there is no need to worry that such macros might be
> > > incompatible with each other or have strict ordering constraints.
>
> Of these the first two improvements would be banned by your proposed
> coding style rule.
Only the first would be banned, I am OK with making an exception for
alloca constructs and macros.
> I don't understand what the harm is in allowing declarations, with
> initialisation, freely mixed with code.
It makes the code harder to read;
it makes it more difficult to rearrange local variables in the future;
it makes it more difficult to see how much stack your function is using;
it makes it more difficult to realize if you can reduce the amount of
local variables you are using.
And it violates the current coding style.
I think that declaring variables at the beginning of the function is a
good programming practice in any language.
The three most important C codebases in the Xen project are: Linux,
Qemu and Xen. None of these allow mixing declarations and code, for a
good reason. I don't think libxl should have a different code style in
this regard, it would just be confusing.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |