"char *" diff in header & func arg list?

kourama kourama@teksavvy.com
Mon Mar 26 18:09:00 GMT 2007

I have noticed something that seems wrong to me, and I'd like to know if
anyone can confirm the bug or explain the seemingly strange behaviour.
Attached is a set of files which demonstrates the problem:

http://www.nabble.com/file/7426/a.c a.c 
http://www.nabble.com/file/7427/b.c b.c 
http://www.nabble.com/file/7428/Makefile Makefile 

When the aa function in a.c declares "char *arg" in it's argument list, it
gets a pointer, which means that "char *arg" is equivalent to "char arg[]"
in the argument list.

However, in the file b.c, the declaration "extern char *myarray" is treated
differently from "extern char myarray[]"

It seems to me that, based on the context, the two should be equivalent, but
GCC doesn't treat them that way.

So, is this a bug, legacy behaviour or is this just another wrinkle in the
sharpei puppy that is C?

Many thanks.
View this message in context: http://www.nabble.com/%22char-*%22-diff-in-header---func-arg-list--tf3468423.html#a9677694
Sent from the gcc - Help mailing list archive at Nabble.com.

More information about the Gcc-help mailing list