DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Ferruh Yigit <ferruh.yigit@amd.com>
Cc: "Morten Brørup" <mb@smartsharesystems.com>, dev@dpdk.org
Subject: Re: Coding Style for local variables
Date: Tue, 11 Jun 2024 08:50:55 -0700	[thread overview]
Message-ID: <20240611085055.373980e4@hermes.local> (raw)
In-Reply-To: <190c4772-9ee5-466a-adc1-a0c4f5bb75f8@amd.com>

On Tue, 11 Jun 2024 16:10:33 +0100
Ferruh Yigit <ferruh.yigit@amd.com> wrote:

> On 6/10/2024 4:10 PM, Morten Brørup wrote:
> > The coding style guide says:
> > 
> > "Variables should be declared at the start of a block of code rather than in the middle. The exception to this is when the variable is const in which case the declaration must be at the point of first use/assignment. Declaring variable inside a for loop is OK."
> > 
> > Since DPDK switched to C11, variables can be declared where they are used, which reduces the risk of using effectively uninitialized variables. "Effectively uninitialized" means initialized to 0 or NULL where declared, to silence any compiler warnings about the use of uninitialized variables.
> > 
> > Can we please agree to remove the recommendation/requirement to declare variables at the start of a block of code?
> >   
> 
> My concern is it may break the consistency in the code.
> If there is an existing function that defines N variables at the
> beginning of the function, new feature defines a new variable close the
> the feature block, this inconsistency bothers me more than all variables
> being defined at top.

There are few places where putting declarations in middle makes sense, like
   for (int i = 0; i < 10; i++)

> 
> Variables being defined on top only bothers me when function is too big
> and I can't see the variable declaration at the same time while I am
> reading the code.

Then the function is too big to start with!

> If functions is small enough to fit ~50% of my screen, locations doesn't
> really matter, I can still observe (effectively) uninitialized variables
> etc...
> Instead of trying to optimize big functions, I am for doing other way
> around to encourage smaller functions.

Agreed

> (Indeed I prefer 80 column limit with 8 space indentation for exact same
> reason, this *artificial* limit only allows some number of indentation
> and at some point forces developer to extract some part of code as new a
> function.)


  reply	other threads:[~2024-06-11 15:50 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-10 15:10 Morten Brørup
2024-06-10 16:11 ` Tyler Retzlaff
2024-06-10 16:31 ` Konstantin Ananyev
2024-06-20  0:38   ` Thomas Monjalon
2024-06-20  7:53     ` Morten Brørup
2024-06-20  8:09       ` Konstantin Ananyev
2024-06-20  9:02         ` Morten Brørup
2024-06-20 14:45           ` Stephen Hemminger
2024-06-11 15:10 ` Ferruh Yigit
2024-06-11 15:50   ` Stephen Hemminger [this message]
2024-06-17 14:38 ` Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240611085055.373980e4@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=mb@smartsharesystems.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).