On Fri, May 1, 2009 at 4:30 AM, Julian Elischer <[email protected]> wrote:
> As an old-fart I have found many cases where what I thought was > a silly style rule, turned out to save my work in some way. > > Christoph Mallon wrote: > > > >>> >>> struct foo *fp; >>> struct bar *bp; >>> >>> fp = get_foo(); >>> if (!fp) return; >>> bp = fp->bp; >>> >>> this can't easily be translated to the more natural: >>> >>> struct foo *fp = get_foo(); >>> struct bar *bp = fp->bp; >>> >> > Well more natural for you, but not necessarily for everyone, > and NOT the same as what is there now, as you noticed. > > > >>> since really you'd want to write: >>> >>> struct foo *fp = get_foo(); >>> if (!fp) return; >>> struct bar *bp = fp->bp; >>> >>> which isn't legal in 'C'. However, we have enough where this isn't >>> >> >> You're mistaken, this is perfectly legal C. See ISO/IEC 9899:1999 (E) >> ยง6.8.2:1. In short: you can mix statements and declarations. >> > Sure, but it's still very bad: If I'm not mistaken, this would mean that "bp" would only be valid within the "if" clause --- which isn't very useful. _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"

