On Tue, 26 Jan 2016 17:46:52 -0500 (EST) Daniel Eischen <deisc...@freebsd.org> wrote:
> On Tue, 26 Jan 2016, Gary Jennejohn 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. > > +1 > > Probably should be discouraged, but allowed on a case-by-case > basis. One could argue that if you need to declaration blocks > in the middle of code, then that code is too complex and should > be broken out into a separate function. > Right. And code like this int func(void) { int baz, zot; [some more code] if (zot < 5) { int baz = 3; [more code] } [some more code] } is even worse. The compiler (clang) seems to consider this to merely be a reinitialization of baz, but a human might be confused. Something like for (int i = 0; i < 2; i++) is IMHO OK. -- Gary Jennejohn _______________________________________________ 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"