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>
