Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 01 Feb 2003 16:02:57 -0800
From:      Bakul Shah <bakul@bitblocks.com>
To:        Mark Murray <mark@grondar.org>
Cc:        Julian Elischer <julian@elischer.org>, current@FreeBSD.ORG
Subject:   Re: Style fixups for proc.h 
Message-ID:  <200302020002.TAA24089@warspite.cnchost.com>
In-Reply-To: Your message of "Sat, 01 Feb 2003 23:15:31 GMT." <200302012315.h11NFVaX028348@grimreaper.grondar.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Julian Elischer writes:
> > I don't know about the protection with a '_'.
> > 
> > It's not standard and usually the name matches that used in the actual
> > function.
> 
> When the prototype parameter name matches a local variable, the C compiler
> (and lint) whine about clashes between names in local/global namespace.

According to C99, a function prototype has its own scope or
name space.  It terminates at the end of the function
declarator.  Basically naming a parameter in a function
prototype is an aide to the human user; it is not needed for
correct compilation[1] so this warning is bogus.  As the
spec says in section 6.7.5.3 (according the draft I have)

    "The identifiers [naming parameters] are declared for
    descriptive purposes only and go out of scope at the end
    of the [prototype] declaration".

I can't see what actual error is avoided by this warning.

> 2 ways to fix this are to "protect" the prototype argument names with the
> "_", or to remove the argument name altogether.

Why not fix the compiler & lint instead of cluttering up
declarations?

-- bakul

[1] Except for what is needed for declaring flexible or
variable length array parameters.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200302020002.TAA24089>