Re: ZeroLink: Perhaps better disabled per default?
Re: ZeroLink: Perhaps better disabled per default?
- Subject: Re: ZeroLink: Perhaps better disabled per default?
- From: Mark Wagner <email@hidden>
- Date: Fri, 14 Oct 2005 09:55:58 -0700
On 10/14/05, Andreas Grosam <email@hidden> wrote:
>
> On 14.10.2005, at 06:53, Marshall Clow wrote:
>
> > At 2:41 AM +0200 10/14/05, Andreas Grosam wrote:
> >> While I fully agree with j o a r, I would like to mention, that
> >> this code snippet will compile without errors:
> >>
> >> // file: foo.c
> >>
> >> extern void bar(); // prototype
> >>
> >> void foo() {
> >> boar(); // typo
> >> }
> >>
> >> Don't expect errors when compiling with a C compiler. It even will
> >> not complain when the -pedantic or -Wmissing-prototypes flags are on.
> >> This is because it is completely valid and legal code.
> >> Sure, it won't link.
> >
> > This may be true with gcc, but I have used C compilers (since the
> > early 1990s) that would complain if they saw a routine that they had
> > not previously seen a declaration or prototype for. (This behavior was
> > controlled by a compiler switch, usually called "Require function
> > prototypes" or something similar.)
> >
> > This was not a CodeWarrior-ism, it predates CodeWarrior.
>
> GNU C has a similar warning:
> -Wmissing-prototypes (C only)
> Warn if a global function is defined without a previous prototype
> declaration. This warning is issued even if the definition itself
> provides a prototype. The aim is to detect global functions that fail
> to be declared in header files.
>
> This warning does not apply here, because within the function foo() a
> function will be *called* ( boar()) but not defined.
> You see the differences?
>
> Actually, the above code is valid and legal - its behavior is clearly
> defined in the C standard.
> In C there is no warning flags which detects such usage. The linker
> will issue an error because of an undefined symbol _boar.
Every compiler I've used will give a warning on that code, usually
something along the lines of "boar() has no prototype; assuming extern
returning int".
--
Mark Wagner
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden