On Tue, Jan 26, 2016 at 9:25 AM, Gary Jennejohn <gljennj...@gmail.com> wrote: > On Tue, 26 Jan 2016 09:06:39 -0800 > Luigi Rizzo <ri...@iet.unipi.it> wrote: > >> On Tue, Jan 26, 2016 at 5:40 AM, Konstantin Belousov >> <kostik...@gmail.com> wrote: >> > On Mon, Jan 25, 2016 at 11:22:13AM +0200, Boris Astardzhiev wrote: >> >> +ssize_t >> >> +recvmmsg(int s, struct mmsghdr *__restrict msgvec, size_t vlen, int >> >> flags, >> >> + const struct timespec *__restrict timeout) >> >> +{ >> >> + size_t i, rcvd; >> >> + ssize_t ret; >> >> + >> >> + if (timeout != NULL) { >> >> + fd_set fds; >> >> + int res; >> > Please move all local definitions to the beginning of the function. >> >> This style recommendation was from 30 years ago and is >> bad programming practice, as it tends to complicate analysis >> for the human and increase the chance of improper usage of >> variables. >> >> We should move away from this for new code. >> > > Really? I personally find having all variables grouped together > much easier to understand. Stumbling across declarations in the > middle of the code in a for-loop, for example, takes me by surprise. > > I also greatly dislike initializing variables in their declarations. > > Maybe I'm just old fashioned since I have been writing C-code for > more than 30 years.
(sorry for the digression) I am in the same ballpark in terms of coding age, but systems have become a lot more complex in that time window, code size generally exploded, and compilers are smarter so they do not need hints from the programmer on when to do initializations, or stack reuse or register allocations. I find that reducing the scope of variables helps a lot understanding third party code (e.g. where information belongs to) and reduces the chance of misuse (such as, leaking information from the body of a loop). About initializers in declarations, I think the rule should be "use good judgement and privilege readability". E.g., do postpone initialization if the first use is 20 lines down, so that it is clear what the value is by the time you use the variable; or when there is some complex condition to check, as writing it as a conditional expression may be ugly and cause code duplication and lead to poor error handling. But when the first use is close to the declaration, splitting the initialization is just unnecessary source bloat. cheers luigi > > -- > Gary Jennejohn -- -----------------------------------------+------------------------------- Prof. Luigi RIZZO, ri...@iet.unipi.it . Dip. di Ing. dell'Informazione http://www.iet.unipi.it/~luigi/ . Universita` di Pisa TEL +39-050-2217533 . via Diotisalvi 2 Mobile +39-338-6809875 . 56122 PISA (Italy) -----------------------------------------+------------------------------- _______________________________________________ freebsd-net@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"