[comp.os.minix] ANSI c extern question

cagney@chook.ua.oz (Andrew Cagney - aka Noid) (02/09/90)

Is the following valid ANSI C (when declaring 'global' objects)?
	int i[];		vs		extern int i[];
	int i[] = {1,2,3,4,5};			int i[] = {1,2,3,4,5};
The real question is: is
		int i[];
a `tentative definition' given that it fails to specify the size of the
object it is defining?
So either
	1. int i[]; is not a vaild definition so treat it as a declaration.
	2. int i[]; is missing the `extern' directive so it is a `tentative
	   definition' *but* it fails to specify the object size and hence
	   is in error.
					Confused, Andrew Cagney.
BTW: GCC and unix compilers use choice 1, TCC follows choice two.
     see fs/table.c for an example of the code.