[net.lang.c] storage classes in global declarations

draves@harvard.ARPA (Richard Draves) (01/26/85)

Our 4.2bsd cc exhibits some remarkably strange behaviour
when given duplicate declarations.  For example:

	static int a;
	static int a;	/* illegal */
	static int f();
	static int f();	/* legal */

	extern int b;
	static int b;	/* legal */
	extern int g();
	static int g();	/* illegal */

	static int c;
	extern int c;	/* legal */
	static int h();
	extern int h();	/* legal */

I can understand different behaviour for variables and functions,
but the other situations I don't understand.  Declaring a variable
both extern and static is legal?  But for functions it's illegal??
But it's legal when you switch the order???

Is this yet another bug in cc, or some strange feature of C?

Rich
-- 

	"If I am conceited, it is the conceit of an amazing man
	 who has never found any surpassing himself."

						Al-Mutanabbi