Subject: Re: man pages & style guide
To: Julian Bean <jules@mailbox.co.uk>
From: J.T. Conklin <jconklin@netcom.com>
List: current-users
Date: 03/07/1996 01:09:56
> Umm...  I didn't think that function parameters went into the namespace..
> 
> 
> int multiply(int op1,int op2);
> int add(int op1,int op2);
> 
> static int op1,op2;
> 
> void func(void)
> {
>         int op1,op2;
> }
> 
> No namespace conflict there, is there?  That'll compile, surely...

Yah, it will.  Now suppose those prototypes were in a system header
file <foo.h>.

	extern int multiply (int op1, int op2);
	extern int add (int op1, int op2);

This could break if I redefined op1 or op2 before including <foo.h>

	#define op1 "op1"
	#define op2 void
	#include <foo.h>

So prototype function arguments in system headers must either not have
names, or have names in the implementers namespace.

	--jtc