M. Warner Losh schrieb:
In message: <49c5f88c.3070...@freebsd.org>
Andriy Gapon <a...@freebsd.org> writes:
: on 22/03/2009 01:57 M. Warner Losh said the following:
: > I'll point out that style(9) doesn't say use as few local variables as
: > possible... That part is completely unspecified.
:
: But it does say:
: Do not put declarations inside blocks unless the routine is unusually
: complicated.
Yea, so? Just put them at the top of the function where they belong
and don't worry about it. Christoph has a long reason why this isn't bad.
Maybe I misunderstand your sentence here, but I'm *against putting all
declarations at the top* of the function and I'm *for declaring and
initialising* variables right where you need them.
: "unusually complicated" is, of course, a very subjective measure.
: But still this guideline contradicts typical guidelines for C and its
: offspring which name we do not say to declare variables as close to
: their first usage as possible.
thousands of lines is unusually complicated.
So every function of FreeBSD's kernel is trivial? Or is "ordinary
complicated" not a reason enough for better readability?
: E.g. you can have a simple 3 line block where you need a local variable
: but that block is located 50 lines from start of an enclosing function.
: Very convenient when you need to quickly glance the variable's type (not).
No you don't. There's absolutely nothing wrong with putting them at
the top. In fact, it is simpler, really, than having to go hunting
for dozens of different declarations. As someone who has spent a lot
of time looking at code, the time wasted looking for these damn-fool
things really adds up.
I fully disagree. I prefer seeing the declaration right where the
assignment/initialisation is instead of hunting for it two pages up.
Also for the rare case that you cannot directly spot the declartaion a
few lines up, every editor/IDE I know, which is more advanced than ed,
has a "jump to declaration" key combination and I prefer when it just
moves a few lines up instead of two pages and puts me totally somewhere
else. E.g. for vim the key combination is "gd". Others (e.g. Eclipse)
highlight the declaration when you move the cursor over a use of the
variable and if it is two pages up you do not see the highlight.
The original point is valid: the code changes obfuscated perfectly
readable code for no gain in the object code.
I agree here, but probably for mostly different reasons.
Christoph
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"