On Wed, Jul 09, 2008, Daniel Gerzo wrote: > -Do not declare functions inside other functions; ANSI C says that > -such declarations have file scope regardless of the nesting of the > -declaration. > -Hiding file declarations in what appears to be a local > -scope is undesirable and will elicit complaints from a good compiler. > +Do not declare functions inside other functions; nested functions are > +a GCC extension and are not permitted by ANSI C.
We use lots of extensions that aren't strict ANSI C. I think the real reason not to use them is that gcc's nested functions are particularly unwieldily. First, they're not true lexical closures (and can't be), which makes them much less useful. Second, they are unsupported unless a number of assumptions are met, e.g., must have an executable stack, must be able to invalidate the I cache from userland, and must not have separate I and D address spaces. Nested functions abominable enough that Apple disabled the feature in OS X's build of gcc --- and the Sun and Intel compilers don't support them, even though Intel claims nearly complete gcc compatibility. _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"